01使用ILDasm.exe将可执行文件反编译成IL代码
控制台代码
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
Console.ReadKey();
}
}
}
开始→所有程序→Microsoft Visutal Studio 2012→Visual Stuio Tools→开发人员命令提示→输入:ildasm.exe,回车:
出现ILDasm的界面:
找到控制台程序文件bin\Debug下的可执行文件,拖入ILDasm界面:
ManiFest中:
.assembly extern mscorlib 加载外部核心库mscorlib。
.ver 4:0:0:0 引用外部库的版本
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) 公匙标记,用于唯一确定程序集,实际是SHAI哈希码的低8位字节的反序。
.assembly ConsoleApplication1 编译目标是ConsoleApplication1。
.assembley只加载或编译实际运用到的程序集列表,在程序中using引用到的程序集,如果在程序中没有用到,将被.assembly忽略。
.ctor表示构造函数。
.hash algorithm 0x00008004为了安全性所使用的哈希算法
.ver 1:0:0:0 类的版本信息
.module ConsoleApplication1.exe中.module是程序集指令,指定当前的模块或程序集
.imagebase 0x00400000影像基地址
.file alignment 0x00000200文件对齐
.subsystem 0x0003 连接系统
.corflags 0x00020003运行库头文件,默认为1
主程序类:
构造函数:
Main方法: