首页 > 应用 > 软件技巧 > 正文

ILdasm 的使用方法

2024-07-16 17:45:20
字体:
来源:转载
供稿:网友
通过该工具,我们可以打开任何.net可执行文件(exe或dll)并查看其MSIL代码。
Ildasm.exe下载地址:https://www.Vevb.com/softs/73291.html
下边我们来看看怎么使用:

1.在VS2008中新建一个Windows窗体应用程序,输入如下代码后生成解决方案:


复制代码代码如下:
private void Form1_Load(object sender, EventArgs e)
{
int i = 0;
i = i++;
MessageBox.Show(i.ToString());
}


2.运行ildasm,打开刚生成的exe文件,可以看到如下内容:

3.在ildasm中双击"Form1_Load: void(object,class [mscorlib]System.EventArgs)"即可看到上边代码的MSIL代码:


复制代码代码如下:
.method private hidebysig instance void Form1_Load(object sender,
class [mscorlib]System.EventArgs e) cil managed
{
// 代码大小 22 (0x16)
.maxstack 3
.locals init ([0] int32 i)
IL_0000: ldc.i4.0
IL_0001: stloc.0
IL_0002: ldloc.0
IL_0003: dup
IL_0004: ldc.i4.1
IL_0005: add
IL_0006: stloc.0
IL_0007: stloc.0
IL_0008: ldloca.s i
IL_000a: call instance string [mscorlib]System.Int32::ToString()
IL_000f: call valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
IL_0014: pop
IL_0015: ret
} // end of method Form1::Form1_Load


附:将ildasm集成到VS2008中的方法:

在VS2008菜单中选择"工具→外部工具",点击添加按钮,在标题中输入ILdasm,命令中输入C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin/ildasm.exe,确定后在工具菜单中就能找到ILdasm了,以后只要选择它就能运行ILdasm。

MSIL汇编程序(Ilasm.exe)和MSIL反汇编程序(Ildasm.exe)

先来解释下文要提到的几个名词:

PE文件:可移植可执行文件。当为公共语言运行库编译程序时,该程序转换为由三部分组成的 PE 文件,PE 标头、MSIL 指令、元数据。

MSIL: Microsoft 中间语言。这是一组可以有效地转换为本机代码且独立于 CPU 的指令。MSIL 包括用于加载、存储和初始化对象以及对对象调用方法的指令,还包括用于算术和逻辑运算、控制流、直接内存访问、异常处理和其他操作的指令。


MSIL 反汇编程序是 MSIL 汇编程序 (Ilasm.exe) 的伙伴工具。Ildasm.exe 采用包含 Microsoft 中间语言 (MSIL) 代码的可移植可执行 (PE) 文件,并创建相应的文本文件作为 Ilasm.exe 的输入。

还是以SampleClass为例来解释它们的用法。

MSIL反汇编程序(Ildasm.exe)

下面的命令使 PE 文件 SampleClass.exe 的元数据和反汇编代码显示在 Ildasm.exe 的默认 GUI 中。
ildasm SampleClass.exe
下面的命令对 SampleClass.exe 文件进行反汇编,并将结果 MSIL 汇编程程序文本存储在 SampleClass.il 文件中。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表