おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

ildasmを用いてdllファイルを逆アセンブルをしてみる

はじめに

業務でildasmを利用してdllファイルを逆アセンブルする機会があったので備忘録として残します。

ildasmとは

.NETで生成されたdllファイル等を逆アセンブルするツールです。
基本的にはVisual Studioインストール時に自動でインストールされます。

インストールされる場所は以下となります(Windowsフォルダ配下はバージョンによって違うかもです)。
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools

実際に使ってみた

今回は以下のプロジェクトから生成されるdllファイルを逆アセンブルしてみましょう。

プロジェクト名
・AssemblerTest1

ファイル名
・Program.cs
・Test1.cs

各ファイルは以下のようなコードです。
実行すると単純にコンソール画面にaaaと表示されます。

Test1.cs

namespace AssemblerTest1
{
    public class Test1
    {
        public static string a = "aaa";
    }
}

Program.cs

namespace AssemblerTest1
{
    public class Program
    {
        public static void Main()
        {
            Console.WriteLine(Test1.a);
        }
    }
}

それでは実際にildasm.exeを開いて上記プロジェクトをビルド後に出力されるAssemblerTest1.dllを逆アセンブルしてみましょう。

dllファイルから逆アセンブルし、名前空間AssemblerTest1のクラスたちを確認することが出来ました。
中身をのぞいてみると具体的なメソッド等も見ることが出来ています。

おわりに

意図した名前空間に対象のクラスがあるかどうか等のような内容も確認することが出来るので、今後も必要になった際にはどんどん使っていこうと思います!