什么是PE文件

一个托管的PE文件包含4个部分:PE表头,CLR表头,元数据,IL代码。

PE表头是Windows操作系统要求的标准信息,主要时指出了文件的类型,GUI、CUI或是DLL(不同于以前的Dynamic Link Library,特指程序集文件的一种形式)。

CLR表头专门用于那些需要CLR才能运行的托管模块。CLR表头中包含和托管模块一起创建的元数据的主版本号和次版本号,一些标记,如果模块是GUI或CUI,可执行文件还有一个标识入口点方法的MethodDef标记,以及一个可选的强命名数字签名。最后该表头中还包括模块内某些元数据表的大小和偏移量。

元数据是一个非常重要的概念,他实际上是一个二进制数据块。元数据中包含了一些表,这些表被划分为三大类:定义表、引用表和清单表。定义表包含了程序中的模块、方法、类型、字段、变量、属性、事件等等一切相关的定义信息,而引用表则记录了程序引用的程序集、方法、类型等的信息。清单表与Assembly运行相关。

大家可以通过ILDasm来打开一个托管模块的元数据清单。在命令行中键入ILDasm  /Adv  App.exe来打开一个名为App.exe托管程序,在ILDasm的可视化界面中点击菜单--〉试图--〉元数据--〉显示就可以看到ILDasm处理过的元数据清单。

IL代码,源程序被编译后成为中间语言代码,在ILDasm中也可以看到程序的IL代码。

现在没有解决的就是Assembly相关的一些概念了。

下回再写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值