Start
- Den Yamaha PSR-E433 Synthesizer hatte ich schon lange im Besitz und habe ihn aus Neugier auf den internen Aufbau zerlegt.
- Auf der Hauptplatine entdeckte ich den Chip „YAMAHA SWL01U“, konnte jedoch online keine passenden Informationen dazu finden.
- Einige Monate später fand ich ein Service-Manual eines ähnlichen Synthesizers und konnte die Pin-Beschreibung des Chips ermitteln.
- Ich versuchte, über JTAG-Testpunkte und die UART-Schnittstelle Informationen vom Chip zu bekommen.
Firmware-Dump
- Ich versuchte, über die JTAG-Schnittstelle den IDCODE des Chips auszulesen, erhielt aber einen unerwarteten IDCODE.
- Den Chip schätzte ich auf einen ARM7TDMI-Core und versuchte die Kommunikation mit OpenOCD aufzunehmen.
- Über Änderungen im Stromverbrauch wurde bestätigt, dass die Kommunikation mit dem ARM7TDMI-Core erfolgreich war.
- Ich habe das Firmware-Image gedumpt und mit der Analyse begonnen.
Firmware-Reverse-Engineering
- Mit Ghidra begann ich, die Firmware zu reversen.
- Ich versuchte, anhand der Strings in der Firmware die Struktur des Systems zu verstehen.
- Ich entdeckte eine Liste von Shell-Befehlen und verstand dadurch die Arbeitsweise des Systems besser.
Shellcode
- Ich fand eine Methode, über MIDI-Nachrichten auf den Speicher des Synthesizers zuzugreifen.
- Durch einen Speicher-Schreibbefehl bestätigte ich, dass sich Code in den RAM injizieren und ausführen lässt.
- Ich schrieb und führte einen einfachen Assemblycode aus, der die Zeichenkette „HeloWrld“ auf dem LCD anzeigt.
Bad Apple
- Ich setzte ein Projekt um, das über MIDI ein „Bad Apple“-Video auf dem LCD des Synthesizers ausgibt.
- Über MIDI-Nachrichten wurde auf den internen Speicher des Synthesizers zugegriffen, und auf dieser Basis wurde das Video ausgegeben.
Links
- Verweise auf den vollständigen Projektablauf wurden bereitgestellt.
Das Projekt zeigt, dass sich über MIDI-Nachrichten auf den internen Speicher eines Synthesizers zugegriffen werden kann und damit unterschiedliche Funktionen umgesetzt werden können. Damit wird die Möglichkeit aufgezeigt, das Potenzial des Synthesizers besser auszuschöpfen.
Noch keine Kommentare.