`
380071587
  • 浏览: 479906 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

IL系列文章之二:Make Best Use of Our Tools

 
阅读更多
工欲善其事,必先利其器。这一节我谈的就是我们用于研究IL的工具。
第一篇文章贴出来之后,网上有朋友问我“能不能看到c#程序的IL代码?”。看来还有些朋友对IL的编译与反编译还不太熟悉,所以我个人认为写一篇关于工具的文章还是有必要的。我们的工具主要有三个,第一个是dumpbin,可以把exe,obj,dll等bump出来然我们它们的PE结构,关于PE结构的讨论前一段时间比较热,网络上杂志上都有很多资料。(如果你先麻烦懒得去找的话,那你就等着什么时候我也来写一篇吧J)。另外两个是ilasm和ildasm,上次的文章中我们已经提到过了,分别是IL的编译器和反编译器。dumpbin, ilasm的说明已经比较详细了。你可以启动Visual Studio .NET命令提示,键入“dumpbin /?”,“ilasm /?”或“ildasm /?”,Enter,就可以看到在三个应用程序的命令行帮助了。更为详细的MSDN资料如下:
dumpbin:ms-help://MS.VSCC/MS.MSDNVS.2052/vccore/html/_core_dumpbin_reference.htm
ilasm:ms-help://MS.VSCC/MS.MSDNVS.2052/cptools/html/cpconmsilassemblerilasmexe.htm
ildasm:ms-help://MS.VSCC/MS.MSDNVS.2052/cptools/html/cpconmsildisassemblerildasmexe.htm
(不过你要安装了Visual Studio.NET整合的MSDN才能看到。)
这些我都不想再说了,自己去看吧。我下面要讲的是一个不太容易被人们发现的东西——ildasm的高级选项。
你在Visual Studio .NET命令提示下输入“ildasm /?”看看有什么东西,然后在输入“ildasm /ADV /?”再看看多了什么东西(ADV就是Advanced的意思)。我们第一个输入下是看不到ADV选项的,在第二个输入下我们看到了多出了几个高级选项。这些高级选项对于那些以.net平台为目标的工具开发者很有益处。
可供选择的命令行高级参数如下:
/ADV 以高级方式启动ildasm,在你启动ildasm后“视图”菜单中会出现一些高级选项。如果你是想使用命令行的方式进行反编译的话,“/ADV”必须写在其它选项前面前面,如“/ADV /CLASSLIST”等。
/STATS 显示镜像文件(你就把它理解为被你反编译的文件好了)的统计信息。
/CLASSLIST 包括本模块中定义的类的列表。
/ALL 包括 /HEADER, /BYTES, /STATS, /CLASSLIST, /TOKENS。
/METADATA[=<specifier>] 显示<specifier>所指定的MetaData,<specifier>包括:
MDHEADER 显示MetaData header包含的信息和大小。
HEX 显示更多十六进制表示的内容。
CSV 以逗号分隔的形式显示header的大小。(这里我没搞太懂L。)
UNREX 显示无法分析的外部对象。
VALIDATE 对metadata的一致性进行验证。(对于metadata我以后会有文章介绍。)
OK!差不多了,就先写到这里吧。
分享到:
评论

相关推荐

    sdilreade(Parsing the IL of a Method Body)

    how to get a readable and programmable result from the IL array provided by the MethodBody.GetILAsByteArray() method.

    【传感器】IL系列 CMOS激光位移传感器.zip

    1. 高精度:由于采用了精确的时间-of-flight(飞行时间)测量技术,IL系列传感器可以达到微米级别的位移测量精度。 2. 宽量程:根据不同的型号,IL系列传感器可以测量几毫米至几米的距离,适应不同应用需求。 3. 抗...

    IL 格式不正确Bad IL Format

    标题 "IL 格式不正确Bad IL Format" 描述了一个常见的编程问题,通常与.NET框架中的中间语言(IL,Intermediate Language)相关。当开发者遇到这个错误时,这意味着编译后的.NET程序集(如.dll或.exe文件)包含的IL...

    C#_IL介绍

    C#_IL介绍 IL(Intermediate Language),全称为中间语言,是.NET框架中的一部分,它在C#等.NET编程语言编译后的代码形式。IL是一种与平台无关的指令集,它的存在使得.NET应用程序可以在多种操作系统和硬件平台上...

    读懂IL代码.docx

    【IL代码详解】 IL,全称为中间语言(Intermediate Language),是.NET框架中的一种低级抽象指令集。当我们在.NET环境中编写源代码(如C#、VB.NET等)时,编译器会将其编译成IL代码,而不是直接生成可执行的机器码...

    Dotnet IL Editor(DILE)v0.2.6汉化版,IL调试

    IL(Intermediate Language)是.NET框架的核心组成部分之一,它是.NET程序在编译后的通用表示形式。IL代码是一种低级但平台无关的指令集,类似于Java字节码。开发者可以使用IL来查看和理解.NET程序的内部工作原理,...

    Best Http 1.7.8 解决IL2CPP 64位问题包

    Best Http 1.7.8 解决IL2CPP 64位问题包,解决使用64位发布IL2CPP部分http错误问题升级包;

    il2cpp一键dump-Mac

    本篇文章将深入探讨il2cpp的基本原理、其在Mac平台上的应用以及如何进行“一键dump”。 **一、il2cpp简介** il2cpp,全称为Intermediate Language to C++,是Unity引擎用于将C#代码转换为C++的工具。它的主要目的...

    基恩士CMOS 激光位移传感器IL系列说明书

    "基恩士CMOS 激光位移传感器IL系列说明书" 基恩士CMOS 激光位移传感器IL系列是一种高精度的激光位移传感器,能够检测目标物的位置变化,输出精度高达1μm的位移量测定结果。该系列传感器采用三角测量原理,通过检测...

    C# to IL (IL语言入门书籍--重新上传)

    《C# to IL》这本书是面向对C#编程语言有一定基础,并希望深入理解其底层运行机制的开发者所准备的一份宝贵资源。IL,全称Intermediate Language,是.NET框架中的中间语言,是C#等高级语言编译后的产物,它介于源...

    il2cpp源码

    在Unity3D的编译过程中,C#代码首先会被编译成MSIL(Microsoft Intermediate Language),然后IL2CPP会将这些MSIL指令转换为C++,这个过程称为AOT( Ahead-of-Time Compilation)。这样做的好处在于,生成的C++代码...

    UNIX, Third Edition: The Textbook 3rd Edition

    CHAPTER 19:System Programming Il:Process Management and Signal Processing CHAPTER 20:System Programming ll:Interprocess Communication CHAPTER 21:System Programming IV:Practical Considerations CHAPTER ...

    Expert .NET 2.0 IL Assembler

    《Expert .NET 2.0 IL Assembler》一书由Serge Lidin撰写,深入探讨了.NET 2.0框架下的内部运作机制,特别是聚焦于公共语言运行时(Common Language Runtime,CLR)及其自身的语言——中间语言(Intermediate ...

    IL编辑器,(.NET的中间语言的编辑器)

    IL(中间语言)是.NET Framework中的一个关键技术,它是一种平台无关、语言无关的二进制格式。当.NET应用程序被编译时,无论是C#、VB.NET还是其他.NET兼容的语言,源代码都会首先被编译成IL代码。这是因为IL代码是...

    Inside.Microsoft.NET.IL.Assembler

    But all .NET developers use the IL Disassembler (ILDASM) now and then, and many use it on a regular basis. A cyan thunderbolt—the ILDASM icon (a silent praise for David Drake)—glows on the computer...

    Il2CppDumper_v4.6.0.rar

    Il2CppDumper是一款针对Unity游戏引擎的反编译工具,主要用于分析和提取Il2Cpp格式的游戏二进制代码。Il2Cpp(Intermediate Language to C++)是Unity引擎用于提高性能和安全性的技术,它将.NET的IL代码转换为C++,...

    MicroRNAs : New Regulators of IL-22

    MicroRNAs:IL-22的新型调控分子,陆舟,刘荣花,IL-22是IL-10家族的成员。机体内,Th22,Th1,Th17,NK22,NKT, ILCs 和γδ T细胞都能分泌IL-22。IL-22通过与其受体复合物结合发挥功能,它的受体复合�

    Microsoft.NET IL 语言程序设计

    1. **IL基础知识**:IL是一种低级的、平台无关的指令集,它是.NET Common Language Runtime (CLR) 执行的二进制代码。IL提供了诸如运算符、控制流、类型系统和方法调用等基础构建块。 2. **CIL(Common ...

    il.h il_wrap.h ilu.h ilut.h config.h devil_internal_exports.h

    IL库提供了一系列函数来加载、保存和操作图像,支持多种文件格式,如BMP、JPEG、PNG、TGA等。它也提供了色彩空间转换、图像翻转、裁剪等功能。 2. **il_wrap.h**: 这个文件可能包含IL库中用于图像处理的边界处理或...

    .NET IL 详解(图文教程)

    1. **指令集**:IL包含一系列的指令,如ldc(加载常量)、add(加法运算)、call(调用方法)等,这些指令对应着程序的基本操作。 2. **元数据**:IL代码伴随着丰富的元数据,这些信息描述了类型、字段、方法、属性...

Global site tag (gtag.js) - Google Analytics