• ベストアンサー

.NETZ を使った C# 製アプリの逆コンパイル

とあるソフトを使うに当たり、そのソフトの安全性の確認のためにソースをみたいと思います。 ILSpy で逆コンパイルをかけたところ、NetzStarter.cs と app.resources が現れました。 調べてみたところ、どうもこの構成は .NETZ が利用されているようです。 肝心のコードは app.resources に納められていると思われますので、これを元の形に分解したいと思います。 方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>肝心のコードは app.resources に納められていると思われますので、これを元の形に分解したいと思います。 .NETZは「実行ファイルやDLLをzlibで圧縮し、実行時に自動展開して動かしましょう」っていう物。 NetzStarter.csには「起動後に圧縮部分を展開する為のスタートアップルーチンのコード」しか書かれてない。 app.resourcesには「実行ファイルの圧縮イメージ」が入っている。 例えそれが展開出来たとしても「実行ファイルの無圧縮バイナリイメージ」が出て来るだけで、ソースコードは得られない。 なので、やるとすれば、app.resourcesをzlibで展開して、展開して出てきたバイナリイメージを、もう一度ILSpyにでも放り込むしかない。 現時点で、app.resourcesの「先頭2バイト」が「zlibのヘッダのCMFとFLG」になっている筈なので、それを確認すべし。 http://www.futomi.com/lecture/japanese/rfc1950.html zlibライブラリ、展開ルーチンはググればすぐに見付かる。

zero-spica
質問者

お礼

非常にわかりやすいご説明、ありがとうございます。 全体を把握しながら、具体的に知りたい部分を的確に知ることができました。 解決の糸口が見つかりました、ありがとうございます!

関連するQ&A