end6: 東方旧作の .end エンディングスクリプト向け Web コンパイラ/デコンパイラ(fork)
end6 は、東方旧作 th06/th07/th08/th09 の .end ファイルをコンパイル・デコンパイルする Web ツールだ。これはゼロから書いたものではなく、元プロジェクトを fork して自分のアカウントに置いてある。
.end はこれらの作品のエンディング画面のスクリプト形式で、バイナリで格納されており、バイトを直接眺めても構造は見えてこない。ツールがやるのは、バイナリを読める形式のスクリプトに解析し、編集後にまたコンパイルして戻すこと。この一連の流れが全部ブラウザ内で動くので、環境を用意する必要はない。
fork したのは、当時旧作の IL2CPP とリソース形式を掘り下げていて、ちょうど .end の部分が道を塞いでいたからだ。その実装を読めば、この形式がどう解析され、バイトがどう並んでいるかがはっきり分かるし、必要なときに手元でちょっと手を入れられる。
形式の細部は細かくて、オフセットが一つズレるだけでその区間まるごとが台無しになる。功績はすべて元の作者にあり、自分のこのコピーは逆向の途中でついでに残したアーカイブに過ぎない。
リポジトリはこちら https://github.com/dwgx/end6