.NET文件格式.pdf

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.NET文件格式

The .NET File Format by Daniel Pistelli 目录 * 介绍 * 开始 * .NET PE 文件 * .NET 目录 * 元数据区块 * 元数据表 * 方法 * #Blob 流 * 结论 介绍 .NET 文件格式标准是公开的,你可以在微软网站和你的.NET SDK 文件(查看“Partition II Metadata.doc ”) 中找到,但是这些资料更像是一个参考,而不是真正的指南。实际上对.NET 文件格 式的描述是非常有用的。我认为,在拥有 WinNT.h 文件和拥有 WinNT.h 文件结构和成员的完整解释 之间有极大的不同。微软给出了 WinNT.h 文件的一些解释,但是许多信息描述的并不清楚。当然, 学习本文需要你对 PE 文件格式有非常清楚的了解。如果你对 PE 文件的格式还不是很了解,你应该 首先学习 PE 文件格式知识,否则,你将不能充分理解本文。注意一点:我不打算去解释如何使用微 软提供的函数库去获取.NET 文件格式,我将解释的是格式本身。 本文基于.NET 2.0 框架。 开始 现在唯一存在的查看和编辑.NET 文件格式的工具是我的 CFF 浏览器。请原谅我为宣传此工具 发送的广告邮件,但是你需要这个工具去挖掘.NET 文件格式的内部结构。正是由于这个原因我开发 了此工具。你最终所需要的参考文档是我上面提到过的,并且你能够在你的 SDK 框架中的Include 文件夹下找到。(例如,C:\...\Microsoft.NET\SDK\v2.0\include)。 .NET PE 文件 在开始学习元数据和相关其他成员之前,有必要对.NET PE 文件有一个大概的了解。它们在默 认情况下包括三个部分:.text,.reloc,.rsrc。.text 区块包括输入表,输入地址表,和.NET 区块。.reloc 仅是对入口点指令跳转地址的重新部署 (这是 IAT 中包含的唯一地址) 。IT counts 只是一个输入模 块(mscoree.dll)和一个输入函数(_CorExeMain 用于执行,_CorDllMain 用于动态链接库文件) 。.rsrc 区 块包含的是当.NET 区块拥有所有其他资源后用于可执行的主要图标。程序在运行时是会监视这些区 块标识符的,当你改变它们时,程序集将不会开始运行。 .NET 目录 PE 中以前的 COM 目录现在成了.NET 目录(我是这么称呼它) 。这个区块从 COR20 结构开始, 也叫做 CLI 头: // COM+ 2.0 header structure. typedef struct IMAGE_COR20_HEADER { // Header versioning DWORD cb; WORD MajorRuntimeVersion; WORD MinorRuntimeVersion; // Symbol table and startup information IMAGE_DATA_DIRECTORY MetaData; DWORD Flags; // DDBLD - Added next section to replace following lin // DDBLD - Still verifying, since not in NT SDK // DWORD EntryPointToken; // If COMIMAGE_FLAGS_NATIVE_ENTRYPOINT is not set, // EntryPointToken represents a managed entrypoint. // If COMIMAGE_FLAGS_NATIVE_ENTRYPOINT is set, // EntryPointRVA represents an RVA to

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档