在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
通过该工具,我们可以打开任何.net可执行文件(exe或dll)并查看其MSIL代码。 Ildasm.exe下载地址:https://www.ogeek.net/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 中。 E:\test>ildasm SampleClass.exe /output:SampleClass.il 下面的命令对 SampleClass.exe 文件进行反汇编,并将结果 MSIL 汇编程序文本显示到控制台窗口中。 E:\test>ildasm SampleClass.exe /text 如果文件 SampleClass.exe 包含嵌入的托管和非托管资源,则下面的命令将产生以下 4 个文件:SampleClass.il、SampleClass.res、Icons.resources 和 Message.resources: ildasm SampleClass.exe /output:SampleClass.il 下面的命令对 SampleClass.exe 的 SampleClass 类中的 DataClass 方法进行反汇编,并将输出显示到控制台窗口中。 ildasm /item:SampleClass::DataClass SampleClass.exe /text 参数列表: 下列选项可用于 .exe、.dll、.obj 和 .lib 文件。
下列附加选项可用于 .exe 和 .dll 文件。
下列选项仅对用于文件或控制台输出的 .exe 和 .dll 文件有效。
下列选项仅对用于文件或控制台输出的 .exe、.dll、.obj 和 .lib 文件有效。
MSIL汇编程序(Ilasm.exe) 下面的命令对 MSIL 文件 SampleClass.il 进行汇编并产生可执行文件 SampleClass.exe。 E:\test>ilasm SampleClass Microsoft (R) .NET Framework IL Assembler. Version 1.1.4322.2032 Assembled method DataClass::.ctor Emitting members: 下面的命令对 MSIL 文件 SampleClass.il 进行汇编并产生 .dll 文件 SampleClass.dll。 E:\test>ilasm SampleClass /dll Microsoft (R) .NET Framework IL Assembler. Version 1.1.4322.2032 Assembled method DataClass::.ctor Emitting members: 下面的命令对 MSIL 文件 SampleClass.il 进行汇编并产生 .dll 文件 SampleClass.dll。 ilasm SampleClass /dll /output:newSampleClass.dll 参数列表:
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论