[Hack] 暗号化されたbymlを復号する

BYML

要するにXMLのようなものなのだが、任天堂独自の特殊仕様になっているためそのままでは読み込むことができない。

しかし、TheFourthDimensionというツールを使うことでXMLに復号できます。

ただし、これは何故か最新のファイルについては動作しません。

というのも、最新のファイルはイカ研究所によって更に別の暗号化がされているためです。

暗号化されたBYMLはMush.release.packにあるのですが、正直今まで別に復号を必要としてこなかったのでスルーしていました。

NisasystSharp

暗号化されたBYMLを復号するのがスプラ界のゴッドであるOatmealDome氏がリリースしたNisasystSharpです。

これ、使い方が最初全然わからんくて困りました。

Shadow氏にきいたら教えてくれてやっと納得できたのですが、初見だと詰まる方がたくさんいそうです。

$ NisasystSharp.exe <Original Path> <Target File>
$ NisasystSharp.exe Mush/ActorDb.release.byml ActorDb.release.byml

すっごいわかりにくいのですが、<Original Path>というのは “Mush/XXXXX.byml” という形式で固定です。

つまり、本来はromfsのどこにあるファイルなのかを示すパラメータです。

<Target File>は復号したいファイルのパスです。<Destination Path>ではないので、ファイルがあるところを指定しなければいけません。

誰でもわかる使い方

Mush.release.packをsarctoolなどで展開するとMushというフォルダができると思いますが、その中にNisasystSharp.exeをコピーします。

そこに、以下のコマンドを記述したバッチファイルを作成しましょう。

@echo off
for %%f in (*.byml) do (
NisasystSharp Mush/%%f %%f
)

あとは作成したバッチファイルをダブルクリックすれば全てのファイルを復号してくれます。

全ファイルの復号に成功!

あとはTheFourthDimensionでXMLに変換するなりすれば良いでしょう。