3 pontos por GN⁺ 2025-01-06 | Ainda não há comentários. | Compartilhar no WhatsApp

Início

  • Eu tinha um sintetizador Yamaha PSR-E433 há bastante tempo e, por curiosidade sobre a estrutura interna, acabei desmontando-o.
  • Descobri o chip "YAMAHA SWL01U" na placa principal, mas não encontrei informações sobre ele on-line.
  • Meses depois, encontrei o manual de serviço de um sintetizador semelhante e consegui consultar a descrição dos pinos do chip.
  • Tentei obter informações do chip por meio do ponto de teste JTAG e da interface UART.

Dump de firmware

  • Tentei ler o IDCODE via interface JTAG, mas veio um IDCODE inesperado.
  • Supondo ser um núcleo ARM7TDMI, tentei me comunicar com o chip usando o OpenOCD.
  • Confirmei que a comunicação com o núcleo ARM7TDMI estava funcionando observando mudanças de corrente.
  • Fiz o dump do firmware e comecei a análise.

Engenharia reversa de firmware

  • Comecei a fazer engenharia reversa do firmware usando o Ghidra.
  • Tentei compreender a estrutura do sistema por meio das strings do firmware.
  • Encontrei uma lista de comandos de shell e, com ela, entendi como o sistema funcionava.

Shellcode

  • Descobri uma forma de acessar a memória do sintetizador através de mensagens MIDI.
  • Confirmamos que era possível injetar código na RAM e executá-lo usando o comando de escrita de memória.
  • Criei e executei um pequeno código assembly que imprime a string "HeloWrld" no LCD.

Bad Apple

  • Desenvolvi um projeto para exibir o vídeo "Bad Apple" no LCD do sintetizador via MIDI.
  • Acessei a memória interna do sintetizador por meio de mensagens MIDI e, com isso, exibi o vídeo.

Links

  • Foi fornecido um link com todo o processo e materiais relacionados ao projeto.

Este projeto mostra que, ao acessar a memória interna do sintetizador via mensagens MIDI, é possível implementar uma variedade de funcionalidades, abrindo a possibilidade de explorar todo o potencial do instrumento.

Ainda não há comentários.

Ainda não há comentários.