3 ポイント 投稿者 GN⁺ 2025-01-06 | まだコメントはありません。 | WhatsAppで共有

はじめに

  • Yamaha PSR-E433シンセサイザーを長く所有しており、内部構造への好奇心から分解した。
  • メイン基板で「YAMAHA SWL01U」チップを発見したが、オンラインで関連情報を見つけられなかった。
  • 数か月後、同系統のシンセサイザーのサービスマニュアルを見つけ、チップのピン定義を確認した。
  • JTAGテストポイントとUARTインターフェースを使ってチップ情報の取得を試みた。

ファームウェアダンプ

  • JTAGインターフェースを介してチップのIDCODEを読み取ろうとしたが、予想外のIDCODEが返ってきた。
  • ARM7TDMIコアと推定し、OpenOCDでチップとの通信を試みた。
  • 電流変化からARM7TDMIコアとの通信が成功したことを確認した。
  • ファームウェアをダンプして解析を開始した。

ファームウェアリバーシング

  • Ghidraを使ってファームウェアのリバースエンジニアリングを開始した。
  • ファームウェア内の文字列からシステム構造の理解を試みた。
  • シェルコマンドの一覧を発見し、これを通じてシステムの動作方法を理解した。

シェルコード

  • MIDIメッセージを使ってシンセサイザーのメモリにアクセスできる方法を見つけた。
  • メモリ書き込みコマンドを使ってRAMにコードを注入し、実行できることを確認した。
  • "HeloWrld"文字列をLCDに表示するシンプルなアセンブリコードを書いて実行した。

Bad Apple

  • MIDIを使ってシンセサイザーのLCDに「Bad Apple」の映像を表示するプロジェクトを実施した。
  • MIDIメッセージでシンセサイザーの内部メモリにアクセスし、これを使って映像を表示した。

リンク

  • プロジェクト全体の流れに関するリンクを掲載した。

このプロジェクトは、MIDIメッセージでシンセサイザー内部メモリにアクセスし、さまざまな機能を実装できることを示している。これにより、シンセサイザーの潜在能力を最大限に引き出す可能性を示している。

まだコメントはありません。

まだコメントはありません。