HOME >> Tips >> Microsoft.NET

コンパイル済みの exe や dll からソースコードを生成する

2015/3/10
文書番号:20200




コンパイル済みの exe や dll からソースコードを生成する方法です。

昔は無償だった .NET Refrector という製品が有名ですが今は有償の製品になっています。
.NET Refrector だと Visual Studio に統合して使用することができ、その情報を元にデバッグまでできるようですが、 今回はフリーソフトを使って中を見てみる程度のことを試してみたいと思います。


【ILSpy】

  1. まずは「ILSpy」というソフトを試してみます。
    ILSpyのサイトへアクセスします。

    ILSpy
    http://ilspy.net/

    今回は現時点で最新の Version 2.3 をクリックします。

    クリックで拡大
  2. 画面下部の Downloads のリストにある「ILSpy_Master_2.3.0.1827_Binaries.zip」をクリックしてダウンロードします。
    ※表記はバージョンによって一部異なります。

    クリックで拡大
  3. ダウンロードしたzipファイルを解凍し、フォルダ内の「ILSpy.exe」をダブルクリックして起動します。

    クリックで拡大
  4. ILSpy が起動します。
    「File」メニューから「開く」を選択し、対象の exe もしくは dll ファイルを選択します。

    クリックで拡大
  5. 選択したファイルがツリーに追加されます。
    ツリーを展開し、フォームやクラスなどを選択すると右のペインにソースコードが表示されます。

    クリックで拡大
  6. 画面上部の言語選択ボタンで言語を選択すると選択した言語で表示されます。

    クリックで拡大

【.NET CodeReflect】

  1. 次に「.NET CodeReflect」というソフトを試してみます。
    .NET CodeReflect のサイトへアクセスします。

    .NET CodeReflect
    http://www.devextras.com/decompiler/

    画面下部の「Download Code Refrect 1.0.8」をクリックします。
    今回は右のボタンで Zip File 版をダウンロードしました。


    クリックで拡大
  2. ダウンロードしたZipファイルを解凍し、フォルダ内の「CodeRefrect.exe」をダブルクリックで起動します。c 起動時すぐに「ファイルを開く」ダイアログが起動しますので対象の exe もしくは dll ファイルを選択します。

    クリックで拡大
  3. 選択したファイルがツリーに追加されます。
    ツリーを展開し、フォームやクラスなどを選択すると右のペインにソースコードが表示されます。

    クリックで拡大
  4. ILSpyと同じく画面上部の言語選択ボタンで言語を選択すると選択した言語で表示されます。

    クリックで拡大

個人的には C# と VB.NET のコード変換にたまに使います。
C# で作りたいのにどうしてもサンプルがVB.NETしかない場合、またはその逆の場合でそのサンプルが難しい場合にサンプルのソースでexeを作成して上記のツールで開くとC#とVB.NETで相互変換できるので非常に便利です。


developerFusionの「Convert C# to VB.NET」 でうまくいけばその方が簡単なのですが、難しいコードを投入するといくら待っても返ってこないのでそのようなときに。


【参考情報】

ILSpy
http://ilspy.net/

.NET CodeReflect
http://www.devextras.com/decompiler/

[redgate].NET Reflector
http://www.red-gate.com/products/dotnet-development/reflector/