LoginSignup
9
10

More than 5 years have passed since last update.

.NETのexe/dllとMSILを相互に変換する

Last updated at Posted at 2015-07-10

exe/dll → msil

ildasm.exeを使います。格納位置は以下の様な場所です。お察しの通りVisualStudioなどをインストールすると一緒に入ってくるようです。簡易なILSpyのようなGUIもついています。クラス名などの確認だけなら普通に使えます。


C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ildasm.exe

構文

ildasm [options] [PEfilename] [options]

よく使うオプション

名前 意味
/out=filename.il GUIで表示せずに、ファイルへ出力する
/nobar 変換中のプログレスバーを非表示
/utf8 ANSIではなく、UTF8で出力する

例によってUnityのDLLをilに変換します。
> ildasm /out=Assembly-CSharp.il Assembly-CSharp.dll

公式ドキュメント
https://msdn.microsoft.com/ja-jp/library/f7dy01k1(v=vs.110).aspx

msil → exe/dll

ilasm.exeを使います。こちらは、VSが入っていなくとも使えます。


C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe

よく使うオプション

名前 意味
/dll 標準のexeではなく、dllを出力
/output:filename ファイル名を拡張子付きで指定。標準は入力ファイルと同等
/x64 ターゲットをAMD64に設定
/pe64 標準ではitaniumの64bitに設定

> ilasm.exe /dll Assembly-CSharp.il

公式ドキュメント
https://msdn.microsoft.com/ja-jp/library/496e4ekx(v=vs.110).aspx

MSILを読みあたって、参考にしたサイト
http://www.asukaze.net/etc/cil/opcode.html

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10