Reverse engineering the Creative Katana soundbar to control it from Linux
L'auteur a acheté une barre de son Creative pour remplacer d'anciens haut-parleurs et a découvert qu'elle nécessite l'application propriétaire Creative, disponible uniquement pour Windows, pour configurer l'égaliseur et les LED via le port USB. En analysant l'application .NET avec dnSpy et en capturant le trafic USB avec Wireshark/USBPcap, il a extrait un blob de mise à jour de firmware en clair et réalisé environ 100 captures en testant méthodiquement toutes les options de l'application. La communication s'effectue sur l'interface série CDC ACM (apparue sous /dev/ttyACM* sur Linux) et les commandes propriétaires suivent un cadrage simple commençant par 0x5A, suivi d'un opcode, d'une longueur et d'une charge utile. Avant d'accepter les commandes, le périphérique impose une authentification par défi-réponse utilisant AES-256-GCM avec une clé construite à partir de l'en-tête du défi, de données statiques dans une DLL et de l'identifiant USB, la réponse étant envoyée sous la forme "unlock" + iv + ciphertext + tag. Avec ces éléments il a développé un outil Rust nommé v2x-ctl pour contrôler l'appareil sous Linux et a écrit un script pour extraire un fichier CIFF (format Creative) contenant des sections BOOT et MAIN et une somme de contrôle SHA-256 afin de poursuivre l'analyse des firmwares.