Nintendo Switch 2|任天堂
出典: nintendo.com

Nintendo Switch 2の本体システム更新「23.5.0」で、プログラミングソフト「プチコン4 SmileBASIC」を利用した脱獄に使われていた脆弱性が修正されました。この手法によるゲームの改変や、ゲームデータをファイルとして取り出す「吸い出し」が制限され、近い時期に発売される一部のゲームカード版などを除いて利用できなくなります。

10月に実証された手法をソフトウェア更新で修正

Switch 2では10月、初めて脱獄が実証されました。脱獄は本体の制限を回避する手法で、今回のケースではSmileBASICを経由し、改変した「マリオカート ワールド」を本体上で動かす映像が公開されていました。手順は複雑で、利用にはその後配信が停止されたSmileBASICが必要でした。

10月26日までには、この手法を使ってゲームをROMと呼ばれるデータファイルとして吸い出し、本体のファイルシステムへアクセスするところまで進んでいました。ファイルシステムへのアクセスとゲームの吸い出しは、別の環境でゲーム機の動作を再現するエミュレーターの開発に関わる基盤技術でもあります。

今回修正されたのは、この一連の脱獄で利用されていたOSの脆弱性です。対処後も例外となるのは、近い時期に発売される一部のゲームカード版で、ゲームの更新データも例外となる可能性があります。この例外については、改造関連の情報を発信するOatmealDomeが11月10日に言及しました。

初代Switchとは異なる修正の仕組み

今回の手法は、Switch 2の物理的なハードウェアではなく、ソフトウェア上の問題を利用していました。そのため、本体システムの更新によって、脱獄に使われた脆弱性を修正できました。

一方、初代Switchの初期モデルで利用された脱獄手法は、ハードウェアの問題に基づくものでした。任天堂は製造時の変更で対応する必要があり、すでに利用者の手に渡った対象本体では、同じ問題を更新だけで取り除けませんでした。

SmileBASICは本来、ゲームを作って動かすためのソフト

今回の脱獄で利用された「プチコン4 SmileBASIC」は、Nintendo Switch上でゲームを制作し、遊べるプログラミングツールです。プログラミング言語「SmileBASIC」を搭載し、ゲーム制作向けの画像やサウンド素材を備えています。作成したプログラムをインターネットで公開し、ほかの利用者が作ったプログラムをダウンロードして遊ぶ機能もあります。

制作環境には、文字列や数値配列、画像をファイルとして扱う仕組みがあり、ファイルは「プロジェクト」という管理単位に格納されます。また、画像や文字の描画に加え、キャラクターなどの画像を個別に動かすスプライト、音声の再生、コントローラー入力などを扱えます。

今回の脱獄では、こうした制作環境を入口に、本体のシステムファイルへのアクセスやゲームデータの吸い出しへと利用範囲が広がっていました。通常のゲーム制作機能を使うことと、脆弱性を通じて本体システムへアクセスすることには、扱う対象と範囲に違いがあります。

吸い出したゲームを動かすには別の処理も必要

ゲームデータの吸い出しと、そのデータを別の環境で読み込む処理は、技術的には別の段階です。初代Switch向けエミュレーター「Voland」の場合、読み込む対象は復号済みのNCAファイルで、ゲームカードやインストール済みゲームから吸い出したファイルを、そのまま入力する仕組みにはなっていません。

Volandでは、吸い出したゲームデータと暗号鍵を別のツールで処理し、読み込みに使うファイルを用意します。復号はPC側で行い、Voland自体は暗号鍵を受け取らず、復号機能も備えていません。