ツイッターで、ghidraninja氏が発売日前に入手できた『ゲーム&ウオッチ スーパーマリオブラザーズ』のハックに成功し、Hello World表示に成功したことを公表していました。
『ゲーム&ウオッチ スーパーマリオブラザーズ』が本日発売されました。
1980年に発売された「ゲーム&ウオッチ」に、マリオバージョンが新登場。
『ゲーム&ウオッチ スーパーマリオブラザーズ』は本日発売です。#スーパーマリオ35周年https://t.co/uguFrmE3ng pic.twitter.com/h822iggRG5— 任天堂株式会社 (@Nintendo) November 12, 2020
なぜが一日早く入手できたghidraninja氏は早速分解してハックに取り組みました。
My Nintendo Game and Watch arrived a day early! Let’s tear it down and see how it works – and how easy it is to hack it! pic.twitter.com/Pz05EEVyIO
— stacksmashing (@ghidraninja) November 12, 2020
ゲーム&ウォッチが1日早く到着した!分解して仕組みを調べて、どれくらいハックするのが簡単なのか見てみよう。
Found the SWD pinout! Will check later whether it's enabled or locked! pic.twitter.com/Y0JgwJObZn
— stacksmashing (@ghidraninja) November 12, 2020
SWDのピン出力発見。有効になっているかロックされてるかを調べてみる。
SWD(Serial Wire Debug)は内部回路と通信を行うデバッグ用インターフェースです。ボードと通信を行うことができるので中を調べることができます。
SWD is enabled, but the device is secure unfortunately, so we can't simply dump the firmware via SWD! pic.twitter.com/dr4KWLJZRH
— stacksmashing (@ghidraninja) November 12, 2020
SWDは有効だったけど、保護されてた。SWDで簡単にはファームウェアをダンプできない。
その後Flashメモリのダンプに成功したようです。
Awesome, seems like it loads a Super Mario Bros. NES ROM into RAM (device RAM contents left, original Super Mario Bros. ROM right) pic.twitter.com/gR4ItA2Kph
— stacksmashing (@ghidraninja) November 12, 2020
ビックリ。『スーパーマリオブラザーズ』のNES ROMをRAMに読み込んでる(デバイスRAMのコンテンツが左、オリジナルのスーパーマリオROMが右)
ROMそのものを読み込んでいるようです。ということは、その方法はともかくROMの入れ替えは物理的には不可能ではないことが分かります。
そして最後に
SUCCESS!! YESSSSS pic.twitter.com/EuMh8G9mp7
— stacksmashing (@ghidraninja) November 12, 2020
HACKEDの文字をゲーム&ウォッチで表示させることに成功しました。
これはいわゆるHello World(任意の自作コードを実行させること)に成功した状態です。「Hello World」と表示させることが多かったことからこの状態をHello Worldと一般的に呼んでいますが、今回は「HACKED」と表示させています。
ghidraninja氏の取った方法はハードウェアハックですので、同じ方法でのハックをユーザーが行うことになるとハックとしてはハードルが低いとは決して言えませんか、ゲーム&ウォッチハックが可能であることが明らかになったので、興味を持ったハッカーがこぞって今後参戦してくるかも知れません。