工欲善其事,必先利其器。这一节我谈的就是我们用于研究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!差不多了,就先写到这里吧。
分享到:
相关推荐
how to get a readable and programmable result from the IL array provided by the MethodBody.GetILAsByteArray() method.
IL 格式不正确Bad IL Format 解决方案二
Best Http 1.7.8 解决IL2CPP 64位问题包,解决使用64位发布IL2CPP部分http错误问题升级包;
【传感器】IL系列 CMOS激光位移传感器zip,【传感器】IL系列 CMOS激光位移传感器
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 ...
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...
MicroRNAs:IL-22的新型调控分子,陆舟,刘荣花,IL-22是IL-10家族的成员。机体内,Th22,Th1,Th17,NK22,NKT, ILCs 和γδ T细胞都能分泌IL-22。IL-22通过与其受体复合物结合发挥功能,它的受体复合�
Potential role of IL-9 in the pathogenesis of systemic lupus erythematosus,冷瑞雪,潘海峰,It has been identified that Th cells and their cytokines play a pleiotropic role in the pathogenesis of ...
IL Spy .Net反汇编工具
基恩士CMOS 激光位移传感器IL系列说明书
威纶AR60T_AR80iL-O系列通用变频器使用手册
重要的错误修复和兼容性更新仅在此时间段内]Il2CppInspector 2021.1 Il2CppInspector可帮助您对IL2CPP应用程序进行逆向工程,从而提供当前可用的最完整的分析。主要特点将IL2CPP类型定义,元数据和方法指针输出为...
-iOS(+ IL2CPP 64 bit, IPv6), tvOS, Android -Windows Phone 10, Windows Store Apps, UWP -Windows, Mac OS X, Linux Most notable HTTP features are: -Customize all parts of your requests: -+Methods(GET, ...
Inside Microsoft .NET IL Assembler (中文名:Microsoft .net IL 汇编语言程序设计指南)的.Net 2.0源码。
il2cpp一键dump-Mac
DOLD IL5880 绝缘监控模块样本pdf,交流绝缘监控模块,符合IEC/EN 61 557标准? 可适用于单相和三相交流系统,0~500V AC,10~1000 Hz? 监控值可调,RAL :5…500 KΩ? 监控模块也可直接切断被监控回路? 输出触点断电...
Zygisk版Il2CppDumper,在游戏运行时dump il2cpp数据,可以绕过保护,加密以及混淆。如何食用1.安装Magisk v24以上版本并开启Zygisk2.生成模块 1) GitHub Actions a.Fork这个项目 b.在你fork的项目中选择Actions选项...
C#_IL介绍
IL语言培训资料,帮助理解IL语法,理解IL与C#源代码的对应关系。附实例和IL指令集大全。
IL2cppDumper version 6.2.3