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のクラスたちを確認することが出来ました。
中身をのぞいてみると具体的なメソッド等も見ることが出来ています。
おわりに
意図した名前空間に対象のクラスがあるかどうか等のような内容も確認することが出来るので、今後も必要になった際にはどんどん使っていこうと思います!