Introduction
- J’ai possédé un synthétiseur Yamaha PSR-E433 pendant longtemps et, par curiosité pour sa structure interne, je l’ai démonté.
- J’ai découvert une puce « YAMAHA SWL01U » sur la carte principale, mais je n’ai trouvé aucune information à son sujet en ligne.
- Quelques mois plus tard, j’ai trouvé le manuel de service d’un synthétiseur similaire et j’ai vérifié la description des broches de la puce.
- J’ai essayé d’obtenir des informations sur la puce via les points de test JTAG et l’interface UART.
Dump du firmware
- J’ai essayé de lire l’IDCODE de la puce via l’interface JTAG, mais j’ai obtenu un IDCODE inattendu.
- En supposant qu’il s’agissait d’un noyau ARM7TDMI, j’ai tenté de communiquer avec la puce à l’aide d’OpenOCD.
- Une variation du courant a confirmé que la communication avec le noyau ARM7TDMI avait réussi.
- J’ai dumpé le firmware pour commencer l’analyse.
Reverse engineering du firmware
- J’ai commencé à faire du reverse engineering du firmware avec Ghidra.
- J’ai tenté de comprendre l’architecture du système via les chaînes du firmware.
- J’ai découvert une liste de commandes shell, ce qui m’a permis de comprendre le fonctionnement du système.
Shellcode
- J’ai découvert une manière d’accéder à la mémoire du synthétiseur via des messages MIDI.
- J’ai confirmé qu’il était possible d’injecter du code dans la RAM et de l’exécuter à l’aide d’une commande d’écriture mémoire.
- J’ai écrit et exécuté un petit code assembleur affichant la chaîne « HeloWrld » sur l’écran LCD.
Bad Apple
- J’ai mené un projet d’affichage de la vidéo « Bad Apple » sur l’écran LCD du synthétiseur via MIDI.
- J’ai accès à la mémoire interne du synthétiseur via des messages MIDI et affiché la vidéo de cette façon.
Liens
- J’ai fourni des liens liés à l’ensemble du processus du projet.
Ce projet montre qu’en accédant à la mémoire interne du synthétiseur via des messages MIDI, il est possible d’implémenter diverses fonctionnalités. Il démontre ainsi la possibilité d’exploiter pleinement le potentiel du synthétiseur.
Aucun commentaire pour le moment.