3 puan yazan GN⁺ 2025-01-06 | Henüz yorum yok. | WhatsApp'ta paylaş

Başlangıç

  • Yamaha PSR-E433 sentezleyicisini uzun süredir sahipleniyordum ve devre yapısına olan merakım nedeniyle söktüm.
  • Ana devre kartında "YAMAHA SWL01U" çipini buldum, ancak çevrimiçi olarak bununla ilgili bilgi bulamadım.
  • Birkaç ay sonra benzer bir sentezleyicinin servis kılavuzunu bulup çipin pin açıklamalarını kontrol ettim.
  • Çipin bilgilerini almak için JTAG test noktaları ve UART arayüzünü kullanarak deneme yaptım.

Firmware Dökümü

  • JTAG arayüzünden çipin IDCODE'unu okumaya çalıştım, ancak beklenmeyen bir IDCODE geldi.
  • ARM7TDMI çekirdeği olduğunu varsayarak OpenOCD ile çiple iletişime geçmeye çalıştım.
  • Akım değişimlerini izleyerek ARM7TDMI çekirdeğiyle iletişimin başarılı olduğunu doğruladım.
  • Firmware'i döküp analizine başladım.

Firmware Tersine Mühendisliği

  • Ghidra kullanarak firmware tersine mühendisliğine başladım.
  • Firmware içindeki dizgeler ile sistemin yapısını anlamaya çalıştım.
  • Bir shell komutları listesi buldum ve bununla sistemin nasıl çalıştığını anladım.

Shellcode

  • MIDI mesajlarıyla sentezleyicinin belleğine erişmenin bir yolunu buldum.
  • Bellek yazma komutuyla RAM'e kod enjekte ederek çalıştırabildiğimi doğruladım.
  • LCD'de "HeloWrld" dizgesini yazdıran basit bir assembly kodu yazıp çalıştırdım.

Bad Apple

  • MIDI aracılığıyla sentezleyicinin LCD'sinde "Bad Apple" videosunu göstermek için bir proje geliştirdim.
  • MIDI mesajlarıyla sentezleyicinin dahili belleğine erişip bu yolla videoyu gösterdim.

Bağlantılar

  • Projenin tamamını ve ilgili süreci anlatan bağlantıları sağladım.

Bu proje, MIDI mesajlarıyla sentezleyicinin dahili belleğine erişerek çeşitli işlevler gerçekleştirebileceğini gösteriyor. Böylece sentezleyicinin potansiyelini en üst düzeye çıkarma olasılığını ortaya koyuyor.

Henüz yorum yok.

Henüz yorum yok.