Visual C#プログラムをILSpyでリバースエンジニアリングする

Visual C#で作成したプログラムは、中間コードが作成されてから再びコンパイルされて実行されます。

この中間コードから、プログラムのソースへ変換することは容易にできます。

ここでは、ILSpyを使って、プログラムの中身を読み取る方法を紹介します。

ILSpyのインストール

ILSpyは以下のページからダウンロードできます。

ILSpyのダウンロードページへ

ここではver2をダウンロードして、解凍しました。あとは、ファイル内にexeファイルがあるので実行します。

 

実行すると以下のような画面がでるので、開くボタンをおしてexeファイルを選択します。

ILSpy

すると、ソースコードが表示されます。

 

ここでは、以下のようにボタンを押すとx+yを計算するプログラムにしています。

        private void button1_Click(object sender, EventArgs e)
        {
            int x, y, z;
            x = 1;
            y = 2;
            z = x + y;
            
        }

そして、このexeファイルをILSpyにかけると以下のようになります。

プログラムが読まれてる

見事に読まれていることがわかります。以上のことから、

C#でプログラムを作って配布するとプログラムの中身がすべてばれてしまう

ということです。これがリバースエンジニアリングの恐ろしさです。

著者:安井 真人(やすい まさと)