本文へスキップ
日本語
FikirPilot の記事

SPIの読み取りからデバイスのファームウェアを再構築

更新日: 2026年9月24日 · 3 分で読めます

公開: · 記事の受信: · 処理時間: 4 分

SPIの読み取りからデバイスのファームウェアを再構築
電子回路基板とプローブ

謎のデバイスからファームウェアを取り出すためにフラッシュチップを取り外すと、デバイスを損傷するリスクがある一方、チップを基板上で読み取る方法も失敗する可能性がある。[Matthew “wrongbaud” Alt]はその代わりに、ロジックアナライザーを使って、一般的なW25Qシリーズのフラッシュチップが起動時に実行するSPI読み取り処理を特定、記録、解析する手順を説明している。この方法ではプロセッサーが実際に読み取ったデータに限られるため、チップ全体を取得できない場合がある。

Altはまず、SPI通信の基本と、フラッシュチップのデータシートを使って信号をどのように解釈するかを説明している。続いて、ロジックアナライザーの記録をScapyで処理し、binwalkに渡せるイメージファイルへ変換している。PythonツールのScapyは、ネットワークパケット以外にも、このようなデータの処理に利用できる。

ファームウェアイメージにはブートローダーとLinuxカーネルが含まれているものの、ファイルシステムのパーティションが欠けていることが分かる。これは、プロセッサーがファイルシステムを読み取る前に、2本の追加データラインを使用する高速なQuad-SPIモードへ移行するためだ。追加の記録と処理を行った後、2つのイメージは1行のddコマンドで結合される。Altの活動には、ハードウェアハッキングのガイドやfault injectionに関する調査も含まれている。

なぜ重要か

このアプローチは、ファームウェアの解析においてチップを取り外さずに作業できるため、デバイスを損傷するリスクを低減すると同時に、研究者に基板上の実際の通信を監視する手段を提供する。しかし、結果はメモリーに存在するすべての内容ではなく、プロセッサーが起動時にアクセスした部分を反映するため、得られるイメージの範囲は最初から限定されている。特にSPIからQuad-SPIへの移行は、標準的な信号だけを記録した場合に出力が不完全になる理由を示しており、同様の調査では使用されているデータラインも考慮する必要がある。このことは、ハードウェア研究者やリバースエンジニアにとって、この方法だけでは十分ではなく、不足している部分を補完するために追加の記録および処理手順が必要になる可能性があることを示している。

出典: Hackaday