先日PS Vitaのコアダンプに成功したAndroid開発者として有名なgoroh_kun氏が、今度はPS Vitaのハードウェア解析に取り組みつつあるようです。
PSVITA、だれもハードウェア的な解析はしてないのかなあ。CPUのすぐそばにある8本のPINはJTAGっぽいけど。
— goroh_kun (@goroh_kun) September 13, 2012
CPUのすぐそばにある8本のPINはJTAGっぽい?確かにそれっぽく見えます。
JTAGとはウィキペディアによると(引用ですが、長いので一部省略しています)
JTAG(ジェイタグ, Joint Test Action Group)は、集積回路や基板の検査、デバッグなどに使える、バウンダリスキャンテストやテストアクセスポートの標準 IEEE 1149.1 の通称である。
半導体技術の進歩により集積回路チップのピン間隔も狭くなりプローブを立てての検査が困難になってきている。そのため検査時に、チップ内部の回路を数珠繋ぎにし内部状態を順番に読み出すしくみが考え出された。それを規格化したのがJTAGである。
近年、検査目的だけではなく、組み込みシステムのソフトウェアのデバッグなどの目的で、ICEの一種として、CPUやFPGAにアクセスする手段としてJTAGが用いられるようになってきている。
となっており、つまりシステムにアクセス可能な仕組みを利用しちゃいましょうというのがいわゆるJTAGを使ったハッキングです。
PSVITAのCPUのそばの8個の端子(銀色の部分)この感じだとひげ出すのはできそう。半田付けして、試してみるか pic.twitter.com/bcfZefH0
— goroh_kun (@goroh_kun) September 13, 2012
とりあえずだけど、PSVitaのCPU横の8つの端子のうち6つ(8個のうち2つはGNDだったので)をはんだ付けした。これからOpenOCDでちょっとごにょごにょしてみる予定
— goroh_kun (@goroh_kun) September 14, 2012
OpenOCDとは要するにデバッグするためのプログラムです。
ちなみにまだ結果は出ていないようです。
ハードウェア解析とソフトウェア解析では何が違うのでしょうか。
exploitのようなソフトウェア的な脆弱性を調査するのではなく、ハードウェア方面から調査して行くのがハードウェア解析です。分かり易く言えばいわゆるMODチップと呼ばれるものはハードウェアを解析した結果できた改造方法の一種ですし(もちろんチップのプログラムは書き換えたりしますが)、Xbox 360のJtag Hack/Reset Glitch Hackというのも同じです。
Vitaは発売早々からPSPエミュレーターでHello Worldが動いたものですからPSPの延長であるソフトウェア改造が当初から話題の中心になってしまいました。本来いきなりソフトウェアの解析はできませんからまずハードウェア解析から入るのが一般的です。例えばそこでメモリのダンプを取り出して解析して解明したことが活かされてはじめてソフトウェア解析が始まるといったパターンが考えられます。
WiiもPS3も最初はハードウェア解析から入りましたし、DSiや3DSも今はまだ何の成果も得られていないようですがハードウェア解析から入っているはずです。ニンテンドーDSも基板上の回路をショートしてファームウェアを”FlashMe”に書き換えたりしていたところからはじまりました。本来Vitaもハードウェア解析から始まるべきでしたが、先述のように既に確立されていたソフトウェア的な改造方法が動作してしまったために違う方向へ進んだまま今日まで来てしまったと言えます。
PS Vitaのネイティブハックにはおそらく2種類あります。一つはgoroh_kun氏の見つけたJTAGからの解析方法で、もう一つはPlaystation Mobileという開発環境まで提供されたツールを使う方法(PlayStation Mobileのアプリとしてではなく自作コードをVitaで実行する方法)です。
yifanlu氏のHello Worldは、本人に直接聞いた訳ではないのであくまでも予想ですが後者のPlaystation Mobileのツールを使ったものだと思います。
ハードウェア解析の話はまるで誰も取り組んでいなかったかと思うくらい全く聞こえて来ていませんが、もしかするとPS3をハッキングしたGeohot氏のように成果が出たとの確信が得られるまでは誰も何も公表してこなかっただけかもしれません(ハッキングされてもいないのに場合によってはPS Vitaの次の基板リビジョンでJTAG PINがアクセスできない場所に動かされたりする恐れもあります)。
PSPエミュレータハック以外最初から停滞どころか動いてもいないPS Vitaシーンですのでgoroh_kun氏の活躍には期待したいですね。