GitHubで、15432氏がNintendo Switch 2でも動作するNintendo Switch向けFlashcart Mig Flashの解析のためにファームウェアをダンプして公開したリポジトリでMig Flashのアップデートファイルを展開するmig_unpackと解析するためのディスアセンブラを公開していました。
アップデータを展開するmig_unpack.pyと解析するためのディスアセンブラmig_vmdis.pyを開発したのはhexkyz氏です。hexkyz氏は以前PS Vita関連の開発チームMolecule Teamで活動していましたが、近年はSwitchシーンに身を置いて調査研究を続けてきました。Team XecuterのMODチップSX Core/SX Liteのファームウェアをダンプするなど、Switchシーンで活躍してきています。
そのhexkyz氏がMig Flashファームウェアの復号化に成功しました。
Thanks to the great work done by 15432, we can finally decrypt the MIG flashcart firmware code. Here’s what we’ve learned so far (1/9).https://t.co/I9AVTKEHEQ
— Mike Heskin (@hexkyz) September 6, 2025
You can find the scripts I wrote for decrypting the update files (all versions) and the VM (version 1.1.4 only for now) here:https://t.co/Uma5Hys7dhhttps://t.co/jlh5lKBIjx
Or in the mig_research project here:https://t.co/I9AVTKEHEQ
— Mike Heskin (@hexkyz) September 6, 2025
コードを解析したhexkyz氏によると、Mig Flashについて以下の事実が明らかになりました。
・Migは予想通りTX/GW(Team Xecuter/ Gateway 3DSチーム)
・MIPSライクなVMコードがファームウェアで使われている
・FPGA通信コードスタックはTeam XecuterのSX Coreで使われていたものと同じ
・ゲームカード通信プロトコルはSNOW 2とAES-CCMベースでMig Flashに使われているチップESP32に実装されている
・ファームウェアのコードにはこれまで入手不可とされていた鍵が含まれている。通常は集積回路のデキャップという開封作業をしないと取り出せない
・鍵はESP32からは見えない。鍵はFPGAの中に隠され、データの復号化をFGPAに要求する仕組みのため、クローンのハードウェアは作れない
・ブートローダーとファームウェアに複数の検証レイヤーがあり、RSA-PSSを利用しているESP32セキュアブートシステムとは別にファームウェア自体のアップデートプロセスに署名のダブルチェックが用意されている
・MIPS VMコードの処理では別のRSA署名の検証が行われている
・ファームウェアキーは暗号化されて保存されており、復号化にするキーはチップ固有のHMACキーを使いブートローダーで生成されている
・update.s2ファイルを復号化するには、TEA暗号化の第一レイヤーをまず剥がしてメタデータを解析し、AESキーでファームウェアのコードを復号化、最後にカスタムXORベースのアルゴリズムで暗号化を解除して平文化しないといけない
・XORベースのアルゴリズムは曲者で、ランダムな値なとでリバースエンジニアリングを相当難しくしている。Ghidraでさえ正しくデコンパイルできなかった
普通に考えてFlashcartがSwitch 2で使える時点で任天堂しか知らないはずの鍵を使っていることは予想していましたが、シーンではだれも取得に成功していない鍵の取得に成功していたことになります。
かねてから私はMig FlashチームはUnlockSwitchチーム共々Team Xecuterの残党だと主張してきましたが、コードの解析結果からTeam Xecuterが過去に開発してきた製品と同一手法が用いられていたことからTeam Xecuterだと確定しました。
Mig Flashはかなりの技術力がないと実現できないレベルであり、しかもそれ自体ガチガチにセキュリティを高めていたことも明らかになりました。解析したhexkyz氏曰く「クローンのハードウェアは作れない」としていることから、Mig Flashのクローンとして登場したUnlockSwitchの開発チームはMig Flashチームそのものであり、Team Xecuter残党ということになります。