GitHubで、pixel-stuck氏がNintendo Switchのファームウェア1.0.0向けのウォームブートハックnereba v0.1をリリースしていました。
nerebaはウォームブートのブートROMに存在するexploitを利用してペイロードを実行します。
nerebaの由来は、まさかとは思いましたが「寝れば」。
どうも、いわゆるスリープ的なものの日本語が「寝る」で、もしスリープするならという意味として、活用形のなかの仮定形で「寝れば」になったみたいです。文法的解釈が入っているっぽいので言語としての日本語を知っている人が命名に関係している気がします。
Atmosphèreがフランス語由来の名前になっていることに対して、こっちは日本語で、のようなノリで決めたようですね。
nerebaのexploitはTegra X1のbootromに存在する脆弱性です。Switchはスリープモードに入る際メインプロセッサーは一部の動作に不可欠なコンポーネントを除きシャットダウンを行います。OSはRAMにその状態を保存し、スリープから復帰時にbootromを再起動する際RAMに保存されている状態データを使って復帰します。そのRAMデータのチェック機能が実は甘いという設計ミスに乗じてRAMデータを改変してbootromを制御してしまうのがnerebaです。
特段GitHubには書かれていませんが、スリープ時のチェック機能が云々というのはDeja Vu exploitと同じです。8.0.0でDeja Vu exploitの最後のピースが対策されたことからpixel-stuck氏が公開に至った、と考えて良いかと思います。
Switchシーンの主要メンバーであるSciresM氏らとは別のように見えますが、調べたところpixel-stuck氏はreswitchedチームのメンバーですので仲間割れしたのでなければおそらく用意周到にみんなで準備していたものを今回公開しただけです。
nerebaが今回1.0.0だけに対応としているのは、1.0.0ファームウェアだけはRAMデータがアクセスしやすい場所に格納されているためで、それ以降のファームウェアは格納場所が変更になっており、仕組みだけできてしまえば2.0から3.0までは同じ要領で移植が可能です。現時点ではSwitchのファームウェア1.0.0のみ対応ですが、今後2.0から3.0がサポートされることになっています。4.1.0までは比較的移植できそうらしいので、そこまでは今後対応するかもしれません。
nerebaの実行のエントリーポイントとしてpegaswitch(ウェブブラウザのWebkit exploit)を使いますが、ブラウザへのアクセスには日本版の『ぷよぷよテトリス』でブラウザを起動する方法しかありませんので、必然的に日本版の『ぷよぷよテトリス』必須です。もしnerebaが革新的なSwitchハックであれば世界中でこれから日本版の『ぷよぷよテトリス』争奪戦が勃発するところですが実際にそうはなりません。
nerebaは完全なソフトウェアハックであるためFusée Geléeとは異なりジグやケーブル、PC類は不要で一見便利そうですが、現実問題としてSwitchの古いファームウェアがターゲットですので100%Fusée Geléeに対応しているハードウェアでわざわざソフトウェアハックを行うことになります。更には例えばHomebrewがわざわざ1.0.0で動作するよう開発されていたりしないはずなので、残念ながら実運用上nerebaを使う必然性は皆無、ということになってしまいます。Fusée Geléeが使えないSwitch向けとして可能になる日が来たとき、7.0.1以下のSwitchがnerebaの活躍の場になります。
保存しているファームウェア1.0.0とぷよぷよテトリスは有る
どーしよう・・・