Visual C#プログラムをILSpyでリバースエンジニアリングする
2014年1月18日:C#
Visual C#で作成したプログラムは、中間コードが作成されてから再びコンパイルされて実行されます。
この中間コードから、プログラムのソースへ変換することは容易にできます。
ここでは、ILSpyを使って、プログラムの中身を読み取る方法を紹介します。
ILSpyのインストール
ILSpyは以下のページからダウンロードできます。
ここではver2をダウンロードして、解凍しました。あとは、ファイル内にexeファイルがあるので実行します。
実行すると以下のような画面がでるので、開くボタンをおしてexeファイルを選択します。
すると、ソースコードが表示されます。
ここでは、以下のようにボタンを押すとx+yを計算するプログラムにしています。
private void button1_Click(object sender, EventArgs e) { int x, y, z; x = 1; y = 2; z = x + y; }
そして、このexeファイルをILSpyにかけると以下のようになります。
見事に読まれていることがわかります。以上のことから、
C#でプログラムを作って配布するとプログラムの中身がすべてばれてしまう
ということです。これがリバースエンジニアリングの恐ろしさです。
著者:安井 真人(やすい まさと)
@yasui_masatoさんをフォロー