逆コンパイル
7月10日記者会見
佐藤「逆コンパイルで元のコードを一応復元できるそうであるが、完璧なものにはならない。
ソースコードというものは犯人しか知り得ないものである」
それで逆コンパイルを実際に行なってみた。
2.逆コンパイルテスト用Projectファイル
button1を押すと、Textboxに「Hello, World!」と表示する簡単なサンプルソフト(Project)「HelloWorld」を用意した。コードと若干のコメントを入れてある。
以下に画面(Form1)とC#プログラムを示す。
なお、プログラムの方は「Form1.cs」という名称になっている。プログラマが自分で書くのは主にこの部分のコードなので、通常はこれをソースコードと呼ぶ事もできるが、VisualStudioはもっと多くのソースコードを自動的に生成する。(昨日記事の図参照)
そのため、今回の事件でソースコードと呼ばれているものが、どの範囲を指すのか(Form1.csのようなものか?Project中の自動生成コードまで指すのか?)を定義する必要があると思われる。今はそれが不明確。
3.逆コンパイル結果
HelloWorld.exeをILSpyで逆コンパイルした結果を以下に示す。
①コメントがなくなる、②thisが付く、など動作には影響しないが、元のコードとは変わっている部分が出てくる。iesys.exeはこのサンプルソフトより規模が大きいので、変化する箇所も数多くなる。
その意味で、佐藤弁護士の上記発言は正しい。
4.Assembly情報
「HelloWorld.exe」に含まれている情報を以下に示す。
当方のPCでは情報がほとんど設定されていないが、iesys.exeの場合は例えばCopyrightの所に「Hewlett-Packard Company 2012」という表示があったりするのだと思われる。
5.参考
逆コンパイルの詳細は以下のブログが詳しい。
”ILSpy(3)逆コンパイルの結果”
以上