ファイルシステム
TrustZone
ARM 型の CPU に含まれるセキュリティ技術のこと。
TrustZone ではセキュア OS が動作しており、仮想的に通常の環境とは切り離されている。
セキュア OS ではユーザの個人情報などを保護しており、このセキュア OS にアクセスするには ARM を経由する必要があります。
この仕組みがかなり強固で、実行 OS 側の ROOT 権限をもっていてもセキュア OS から情報が盗めないようになっています。
Exploit
Hack するために必要な脆弱性のうち、実際に利用可能なものを指す。
利用可能かどうかはわからない脆弱性は Vulnerability と呼ばれ、区別されることに注意。
未対策基板のニンテンドースイッチには Fusée Gelée と呼ばれる BootROM 脆弱性が存在する。
以下、今まで発見された脆弱性の一覧。
Name | Available |
---|---|
Jamais vu | 1.0.0 |
Déjà Vu | 1.0.0 - 4.1.0 (7.0.1) |
Fusée Gelée | All firmwares |
Nereba | 1.0.0 - 3.0.0 |
PegaSwitch | 1.0.0 - 3.0.0 |
BootROM
システム起動時に最初に呼び出される命令が書き込まれているメモリのこと。
ROM はリードオンリーメモリの略なので ROM はソフトウェア・アップデートで書き換えることができず、ここに存在する脆弱性は絶対に塞ぐことができない。
なので Fusée Gelée 脆弱性は将来の如何なるバージョンでも有効です。
RCM
リカバリーモードのこと。
初期のニンテンドースイッチには TegraGPU に脆弱性があり、RCM から自作プログラムを起動させることができます。
有名な自作プログラムとして hekate があり、CFW などはその hekate を経由して起動するケースが多いです。
RCM ジグ
RCM に入るためには特定のピンをショートさせる必要があるのですが、RCM ジグを使えばジョイコンの代わりにスイッチにつけるだけで、勝手にピンをショートしてくれます。
すごく便利なのでこれは持っておいたほうがいいと思います。
hekate
RCM から起動できるユーティリティツールのこと。
- CFW の起動
- NAND のバックアップ
- EMUNAND の作成
- BOOT1/2 のバックアップ
- FUSE のバックアップ
など(ここにかいたのはほんの一部)ができる。
最も使うのは CFW の起動と NAND のバックアップだと思います。特に NAND のバックアップは万が一のブリックに備えて必ずとっておくこと。
Brick
Brick(ブリック)とはレンガのこと。
起動しなくなり、復旧もできずに詰んだ状態を指します。
起動できないただの置き物と化すので、海外ではこの状態をレンガと例えて Brick と呼びます。
NAND のバックアップを取っていないと、Nintendo Switch はブリックする可能性があります。
ただ、RCM は BootROM が起動できれば必ず起動できる(しかも BootROM は読み込み専用なのでソフトウェア的な改造で壊れる心配がない)ので、ハードウェア的にぶっ壊れない限りは NAND のバックアップがあれば必ず復元できます。
CFW
カスタムファームウェアのこと。
公式が配布しているシステムファームウェアを改造して自作プログラムが動作するようにしたもの。当然、公式は未公認なのでインストールしているのがバレると本体の修理を拒否されたりします。
CFW としては Atmosphere や SXOS などが有名ですね。
Atmosphere
Github で公開されているオープンソースの CFW のこと。
更新がものすごく速いことで有名です。
DeepSea
Micro SD に展開するだけで CFW(Atmosphere)が起動する環境が整えられるパッケージのこと。
Stock
LFS が動作しない状態の CFW のこと。
当然、FTP などのプラグインも全て動作しない。
OFW と殆ど意味は同じだが、こちらは RCM を経由して起動する点が異なる。
また、RCM を経由するのでヒューズチェックをバイパスできるのも特徴。
OFW
公式のファームウェアのこと。
RCM を経由せずに起動すると必ず SYSNAND の OFW が起動します。
Fuse
ニンテンドースイッチは CPU 内にヒューズシステムが備わっており、システムアップデート後に OFW を起動することでヒューズが焼かれる仕組みがあります。
これにより、一度でも OFW として起動したことがあるバージョンよりも低いバージョンのシステムファームウェアがインストールされている場合に起動しなくなります。
これに関しては GIGAZINE さんがものすごくわかりやすい解説を載せてくれているのでそちらを参照。
ちなみに、RCM から起動すればこのヒューズチェックをバイパスできるので、起動は多少手間ですがいくらでもダウングレードできます。
ただ、低いバージョンだとどのみちオンラインには繋げられないのであまり意味のない機能かもしれません。
NAND
ものすごく大雑把にいえば主記憶メモリのことで、ここにデータを保存します。
NAND には DRAM、SRAM、NVRAM など様々な種類があるのだが、ここではニンテンドースイッチの内部メモリとして採用されている NVRAM について論ずる。
はじめに、ニンテンドースイッチの NAND は容量が 32GB で固定です。
システムが予約していて使えない領域があるので、実際にユーザが使えるのは 23GB くらいです。なのでダウンロード版のスマブラ SP などを本体にインストールするとそれだけでかなり容量を使ってしまいます。
NAND はそれぞれの本体で固有のものですので、別のスイッチの NAND を流用したりはできません。別のスイッチの NAND でリストアすればブリックします。
SYSNAND
システムの NAND のことで、OFW で起動すれば必ず SYSNAND が読み込まれます。
EMUNAND
NAND のエミュレートのことで、本体の NAND をバックアップしてあたかも SYSNAND で起動しているかのように見せかける仕組み、またはその NAND のバックアップのことを指します。
EMUNAND をつかうことで CFW と OFW でセーブデータをわけることができるので、CFW で改造されてしまった不正なセーブデータを使って OFW でオンラインに繋いでしまう心配がなくなります。
EMUNAND 作成には最低でも SYSNAND と同じ 32GB の空き容量を必要とするので 64GB 以上の Micro SD が必要です。
CFW を使っている以上は所持しているゲームを NSP に変換して SD カードにインストールすると思うので、当サイトでは 128GB 以上の Micro SD の購入を推奨しています。
LFS
Layered File System の略で、簡単にいえば本来のファイルシステムを上書きするような仕組みのこと。
CFW ではこれが有効になっているので、本来のファイルを上書きして MOD パッチをあてたりチートしたりすることができる。
ExeFS
LFS を使って置き換えるファイルのうち、メインメモリ上の実行ファイル置き換えるもの。
IPSwitch や Edizon でのチートはこちらを用いる。
RomFS
LFS を使って置き換えるファイルのうち、参照されるファイルを置き換えるもの。
例えば、本来はりんごのテクスチャを読み込むはずなのに、りんごのテクスチャ自体の中身をバナナのテクスチャに置き換えたりする。
MOD パッチやファイル置換などはこちらを用いる。
ファイルフォーマット
XCI
アイコン・タイトル・ゲームなど全てのデータが一つにまとめられたゲームカートリッジをダンプしたファイルのこと。
アップデートが含まれている場合もある。
XCI から直接ゲームを起動できるのは有料 CFW である SXOS だけなので、その他の CFW では eShop 形式である NSP に変換する必要がある。
NSP
アイコン・タイトル・ゲームなど全てのデータが一つにまとめられたファイルのこと。
NSP は eShop 形式なので、CFW では抽出した XCI から変換してインストールされた NSP ををあたかもダウンロード版のようにして起動する。
NSP はインストール時にその情報が本体に刻まれるので NAND がクリーンな状態でなくなるので、NAND が汚れるなどといったりする。
NSP をインストールする前に必ずクリーンな NAND のバックアップをとっておきましょう。
NCA
ZIP 形式のようにいろんなファイルを格納した生データのこと。
これを解凍すればゲームを構成するファイル全てを見ることができます。
解凍には Title Key が必要なので Lockpick などで鍵を取り出す必要があります。
NSO
ニンテンドースイッチにおける実行ファイルのこと。
Windows における exe ファイルというと伝わりやすいかもしれない。
ゲームを解析するときには NSO を ELF と呼ばれる形式に変換することが多いです。
ELF
NSO をnx2elfで復号したファイルのことで、アセンブラで書かれている中間ファイル。
NSO よりも解析しやすいが、NSO を直接読み込める NSO Loader などもあるので好きな方を使えばいいと思います。