FindBytes
AmazingChz氏が作成したコード移植用のプログラムのこと。
nuru氏(@agar_nuru)によると結構簡単にコード移植ができるらしい。
必要なもの
- FindBytes GUI
- 移植元のmain.nso
- 移植先のmain.nso
- nx2elf
nx2elf
main.nsoをmain.elfに変換してくれるツール。
実は要らなかったりするんだが、あったほうが便利だと思うので一応。
nx2elfは64bitでしか動かないので、32bitデバイスを使っている人はfindBytes-GUIをダウンロードしたときに同梱されているdecompressNSO.batにNSOファイルをドラッグアンドドロップしよう。
すると “元ファイル名.uncompressed” というELFファイルが作成されるはずだ。
FindBytes

「findBytes.pyがないからダウンロードしますか」ときいてくるのでOKを押そう。
ファイルは .resources/tools/findBytes/findBytes.py に配置すれば良いはずなのだが、これはもうどうやっても読み込み失敗する。
恐らくpyinstallerでexe形式にすると ” os.path()” が効かなくなることに気付いていないんだと思う。
これはまあ修正して(sys.argv[0]とすれば解決する)プルリクしてもいいんだけどまあそこまで重大なエラーでもないので放置でいいかなと。気が向いたら報告しておきます。

起動したら元気よくStartをクリックします。

最初に “移植元” のELFファイルを指定します。

選択したらNextをクリック。
次に “移植先” のELFファイルを指定します。
やることは同じなので割愛。

最後に移植したいコードを書きます。
今回は4.8.0から4.9.0への移植で実験したいと思います。
あんまりバージョンが離れたファイルで移植しようとすると結構失敗します。

今回はネットに繋がっていない状態でもショップに入れるコードを移植しましょう。
// Offline Shop [Zewia] (4.8.0) @enabled 014D34E8 200080D2
必要なのはアドレス部だけですので、そこだけをコピーしてfindBytesに入力します。

あとはNextをクリックして待つばかり。

簡単に訳すと「移植にかかる時間はお前が入力したアドレスの数で決まるんや。移植中はフリーズしたように見えるかもしれんけど安心しいや、正常な動作やねん」っていうことです。

表示されているConfidence levelっていうのはまあぶっちゃけると信頼度です。
自動で移植しているのでプログラムがミスする可能性もあるのでこうやって信頼性を表示しているわけです円。
確かMAXで30のはずなのですが、15くらいあればだいたい合ってます。
あとは4.8.0のコードのアドレス部を表示されているオフセットで上書きして終了です。
// Offline Shop [Zewia] (4.9.0) @enabled 014F6D2C 200080D2
まとめ
いろいろ公開されているコードのうち半分くらいはこのfindBytesを使えば移植できてしまいます。
なので、これで移植できるコードにはまあそれほど価値がないわけですね。
ところがコードの種類によってはプログラムが移植先を見つけられなくてエラーを出してしまいます。
そういうコードこそ、対価を払ってでも誰かに移植してもらう必要があるかもしれませんね。
ちなみにSLP-JPのdeveloper権限があれば他のdeveloperが投稿したコードが見放題です。

バージョンごとにいろいろありますが、最新のバージョンと3.1.0のコードが賑わってる感じですね。
ちなみにHack目的でサーバに参加された場合は必ずINFORMATIONから規約に目を通して下さい。
記事は以上。
自身を天才と信じて疑わないマッドサイエンティスト。二つ上の姉は大英図書館特殊工作部勤務、額の十字架の疵は彼女につけられた。