转自:http://gsqls.blog.163.com/blog/static/45971218200992855327797/
MSIL 反汇编程序 (ildasm.exe) [C#]
MSIL是.NET Framework中最重要的概念之一。通过MSIL可以预知不同.NET语言的执行效率应该是接近的。通过MSIL汇编程序(ilasm.exe)和MSIL反汇编程序(dilasm.exe)可以观察.NET应用的内部构造,因此也可以用于.NET应用、组件的破解。
ildasm的使用方法
步骤一:开始 → 所有程序 → Microsoft Visual Studio 2005 → Visual Studio Tools → Visual Studio 2005命令提示
步骤二:假设我们有一个控制台应用程序Test.exe。然后把Test.exe拷贝到D:\Program Files\Microsoft Visual Studio 8\VC目录下
步骤三:在命令提示窗口进行下面例子中的操作。例如:
1) ildasm Test.exe 将反汇编代码显示在 Ildasm.exe 的默认 GUI 中
2) ildasm Test.exe /output:Test.il 将结果 MSIL 汇编程序文本存储在 Test.il 文件中
3) ildasm Test.exe /text 将反汇编结果显示到控制台窗口
4) ildasm /item:Test::Print Test.exe /text 将Test.exe中类Test中的方法Print进行反汇编
ildasm使用示例
下面的命令使 PE 文件 MyHello.exe 的元数据和反汇编代码显示在 Ildasm.exe 的默认 GUI 中。
ildasm myHello.exe
下面的命令对 MyFile.exe 文件进行反汇编,并将结果 MSIL 汇编程序文本存储在 MyFile.il 文件中。
ildasm MyFile.exe /output:MyFile.il
下面的命令对 MyFile.exe 文件进行反汇编,并将结果 MSIL 汇编程序文本显示到控制台窗口中。
ildasm MyFile.exe /text
如果文件 MyApp.exe 包含嵌入的托管和非托管资源,则下面的命令将产生以下 4 个文件:
ildasm MyApp.exe /output:MyApp.il
MyApp.il、MyApp.res、Icons.resources和Message.resources
下面的命令对MyFile.exe的MyClass类中的MyMethod方法进行反汇编,并将输出显示到控制台窗口中。
ildasm /item:MyClass::MyMethod MyFile.exe /text
在上面的示例中,可能有几个具有不同签名的MyMethod方法。下面的命令对返回类型为void 且带有参数int32 和 System.String 的MyMethod 方法进行反汇编。
ildasm /item:"MyClass::MyMethod(void(int32,class System.String))" MyFile.exe /text
分享到:
相关推荐
MSIL 反汇编程序是 MSIL 汇编程序 (Ilasm.exe) 的伙伴工具。 Ildasm.exe 采用包含 Microsoft 中间语言 (MSIL) 代码的可迁移可执行 (PE) 文件,并创建相应的文本文件作为 Ilasm.exe 的输入。 安装 Visual Studio 和 ...
要创建和执行.NET应用程序,开发者需要使用命令行工具,如csc.exe编译C#源代码生成MSIL,然后使用ILDASM.exe或ILASM.exe来查看或反汇编MSIL代码。最后,通过运行编译后的.exe文件,即可启动应用程序。 综上所述,C#...
此集合只能用于 C# 程序。 1. 使用上述指导创建一个一般集合,另外实现 IEnumerable 接口。此集合可用于其他语言(如 Visual Basic)。 2. 在集合类中使用一个预定义的集合。 (2) throw 语句用于发出在程序执行...
目前有能显示程序集依赖图、自动加载当前运行中的程序集、输出整个程序集的反汇编内容以及在Visual Studio中作为Reflector的宿主等的插件。还有更多插件都列在http://www.codeplex.com/reflectoraddins中。在此,我...
1. **使用Ildasm.exe**:可以通过命令行工具`ildasm.exe`来反汇编程序集。例如,要查看名为`Hello.exe`的程序集的内容,可以在命令提示符下输入`ildasm Hello.exe`。 2. **使用Microsoft IL反汇编程序**:直接使用...
在编写Emit代码时,可以先用C#实现功能,然后通过ildasm.exe将其转换为MSIL,作为参考。 在实际操作中,我们需要构建一个测试环境来验证代码注入的效果。这通常涉及到动态库的生成和调用。例如,通过Type的...
通过反编译工具如ILDisassembler(ildasm.exe),开发者可以查看C#代码对应的MSIL指令,这对于理解程序的底层工作原理非常有帮助。 在.NET环境中,JIT编译器会在程序运行时将MSIL动态编译成针对当前平台的本地机器...
- **反汇编器(ILDasm)**:允许开发者以人类可读的格式查看MSIL代码。这对于调试和理解编译后的代码非常有用。 - **中间语言编译器(ILAsm)**:可以从MSIL生成可执行文件,通常存储在`WINNT\Microsoft.NET\...
1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11 第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写...
4. 使用ILDASM工具:学习如何使用微软提供的IL反汇编器(ILDASM)查看和分析IL代码。 5. 使用反射和元数据:探讨如何通过反射API动态访问.NET程序集,以及元数据在.NET中的作用。 6. IL代码优化:讨论如何通过调整...
目前有能显示程序集依赖图、自动加载当前运行中的程序集、输出整个程序集的反汇编内容以及在Visual Studio中作为Reflector的宿主等的插件。还有更多插件都列在http://www.codeplex.com/reflectoraddins中。在此,我...
同时,ILDisassembler(ildasm.exe)则可以反汇编.NET编译器生成的CLR兼容二进制输出,帮助开发者检查IL代码和元数据,这对于理解和调试代码非常有用。 当我们转向Visual Studio.NET的安装,这是一个功能强大的集成...
它首先解析程序集的元数据,然后使用ILDASM(IL Disassembler)工具反汇编IL代码为C#源代码。同时,通过ILDASM和MSIL(Microsoft Intermediate Language)的深度理解,dnSpy能准确地呈现代码结构和注释。 3. **技术...
ILDasm是一个反汇编工具,用于将已编译的.NET程序集(例如.exe或.dll文件)转换为可读的MSIL代码,便于查看和分析。而ILAsm则相反,它用于将MSIL代码组装成.NET程序集,允许开发者直接用MSIL编写代码。 MSIL的特点...
1. **中间语言反汇编器(ILDasm)**:这个工具允许开发者将MSIL代码以人类可读的形式展示出来,便于理解和调试。它可以从编译后的程序集中提取MSIL代码,并将其转换为文本格式。 - **用途**:主要用于代码审查、...
目前有能显示程序集依赖图、自动加载当前运行中的程序集、输出整个程序集的反汇编内容以及在Visual Studio中作为Reflector的宿主等的插件。还有更多插件都列在http://www.codeplex.com/reflectoraddins中。在此,我...
有了Reflector.VisualStudio插件(正版,下面是根据在线资料介绍),Reflector可以寄在Visual Studio中Reflector不仅是一个对象浏览器、反汇编器,包裹在同一个程序中的所有功能还可以寄于Visual Studio中。...
目前有能显示程序集依赖图、自动加载当前运行中的程序集、输出整个程序集的反汇编内容以及在Visual Studio中作为Reflector的宿主等的插件。还有更多插件都列在http://www.codeplex.com/reflectoraddins中。在此,我...
目前有能显示程序集依赖图、自动加载当前运行中的程序集、输出整个程序集的反汇编内容以及在Visual Studio中作为Reflector的宿主等的插件。还有更多插件都列在http://www.codeplex.com/reflectoraddins中。在此,我...
目前有能显示程序集依赖图、自动加载当前运行中的程序集、输出整个程序集的反汇编内容以及在Visual Studio中作为Reflector的宿主等的插件。还有更多插件都列在http://www.codeplex.com /reflectoraddins中。在此,我...