サイトアイコン 大人のためのゲーム講座

ニンテンドー3DS向け新カスタムファームウェア Cosmo3DS CFW by Yifan Lu

Yifan Lu氏が、ニンテンドー3DSをハック可能な9.2にしたままeショップへ接続したりリージョン制限回避やリージョン変更などが行えるカスタムファームウェアCosmo3DS CFW v0.1をリリースしていました。

現段階ではまだプレリリース版扱いですので本格的な開発はこれからのようです。

Cosmo3DS CFWは

・3DSを9.2にキープしたままemuNANDとして最新ファームウェアを使う
・HOMEメニューからリージョンフリーでゲームを起動
・3DSをbrickさせることなくシステムリージョンを変更
・リージョン変更したシステムでeショップを利用可能

というの特徴があります。

既存の3DS向けカスタムファームウェアは、基本的には公式ファームウェアをモディファイしたものです。それに対してYifan Lu氏はemuNANDを読み込むためのReiNANDをベースに、emuNANDロード部分以外をなくして軽量化、そしてシステムモジュールが読み込まれて起動する前にパッチをすることで、例えばリージョンを変更するといった仕組みをとっています。この辺りの仕組みについてYifan Lu氏は3DS Code Injection through “Loader”という記事で解説しています。

実は注目なのはCosmo3DS CFWではなくそのための仕組みの方だったりします。

モジュールにパッチをするというところが肝で、実は単純にメモリー上のアドレスを調査して書き換えればいいという簡単な話ではありません。そのパッチをモジュールに施すために、起動プロセスの初期段階のモジュールが実行される前でフックできるようにしているそうです。ちょっと分かりにくいので具体的に、システムリージョンを変更する場合で考えてみます。

3DSのシステムはCFGモジュール(設定モジュールという意味だと思います)をまず読み込みます。他のモジュールはリージョン情報をそのCFGから得るため、そのCFGにパッチをする、ないしはそれを使う全てもモジュールにパッチをすることでリージョンを変更することができるようになります。

文章で書くと簡単に思えますが、当然現実的には簡単な話ではありません。

Yifan Lu氏はそのためにローダーモジュールを既存のモジュールを書き換える形で仕込もうと考えているのですが、そのローダーモジュールにはパッチのコードを保存しようとしているSDカードへのパーミッション(アクセス権)がないなど問題は山積みです。

幸いにもその既存のモジュールは20KBほどの小容量のため1日あればリバース可能な程度で、かつ3DSのファームウェア2.x以降ほとんど変わっていないため、仮に最新ファームウウェアでハックが可能になっても大きな変更なしにそのローダーモジュールが利用出来る可能性が高いと考えられています。

Cosmo3DSはまだ開発段階ですが、Yifan Lu氏のローダー書き換えの試みが完成すればCosmo3DSに限らず色々応用が利きそうなのでシーンが大きく盛り上がるでしょう。一方で、違法コピーをインストールして実行できてしまうような署名回避パッチなども可能になってしまいます。それについてYifan Lu氏は
personal choice, I don’t care what you do
個人の責任でやってください。私は一切関知しません。
と話しています。

モバイルバージョンを終了