Inicio
- Poseía durante mucho tiempo un sintetizador Yamaha PSR-E433 y, por curiosidad sobre su estructura interna, lo desarmé.
- Encontré el chip "YAMAHA SWL01U" en la placa principal, pero no pude encontrar información al respecto en línea.
- Meses después encontré el manual de servicio de un sintetizador similar y confirmé la descripción de los pines del chip.
- Intenté obtener información del chip mediante el punto de prueba JTAG y la interfaz UART.
Volcado de firmware
- Probé leer el IDCODE del chip a través de la interfaz JTAG, pero apareció un IDCODE inesperado.
- Supuse que era un núcleo ARM7TDMI y traté de comunicarme con el chip usando OpenOCD.
- Confirmé que la comunicación con el núcleo ARM7TDMI era correcta observando cambios en la corriente.
- Hice un volcado del firmware y comencé el análisis.
Ingeniería inversa del firmware
- Comencé a hacer ingeniería inversa del firmware con Ghidra.
- Traté de entender la estructura del sistema analizando las cadenas del firmware.
- Encontré una lista de comandos de shell y, con eso, comprendí el funcionamiento del sistema.
Shellcode
- Descubrí una forma de acceder a la memoria del sintetizador a través de mensajes MIDI.
- Confirmé que podía inyectar y ejecutar código en RAM usando un comando de escritura de memoria.
- Escribí y ejecuté un sencillo código ensamblador que imprime la cadena "HeloWrld" en la pantalla LCD.
Bad Apple
- Realicé un proyecto para mostrar el video "Bad Apple" en la pantalla LCD del sintetizador a través de MIDI.
- Accedí a la memoria interna del sintetizador mediante mensajes MIDI y, de ese modo, mostré el video.
Enlace
- Se compartieron enlaces sobre todo el proceso relacionado con el proyecto.
Este proyecto demuestra que, a través de mensajes MIDI, es posible acceder a la memoria interna del sintetizador y así implementar funciones variadas. Esto sugiere la posibilidad de aprovechar al máximo su potencial.
Aún no hay comentarios.