.NET对PE结构的扩展

本文深入探讨了.NET框架如何在Win32的PE文件格式基础上进行扩展,特别是聚焦于.text节的构造变化,其中包含了MSIL、元数据和CLR头等关键元素。CLR头作为.NET可执行文件的核心,其结构和标志字段如COMIMAGE_FLAGS揭示了文件的属性,如纯IL代码、强名称签名等。元数据是.NET文件中的重要组成部分,其位置和大小由MetaData数据目录指示。对于.NET软件分析,文章推荐了一些专用的文件结构查看工具,如LordPE、Researcher .NET等。
摘要由CSDN通过智能技术生成
 

可执行文件的格式是反映一个系统程序运行机制的重要方面,Win32下可执行文件是读者已经非常熟悉的PE格式, 在.NET系统中,运行机制的改变带来了可执行文件格式的扩展。一方面,.NET建立在Win32/64的基础上,兼容性的要求决定了.NET的可执行文 件必须是在PE的基础上进行扩展;另一方面,Win32中PE文件存储的是汇编代码,而.NET中存储的是MSIL与元数据,后者无论是在逻辑结构还是物 理结构上,都与传统PE格式有很大区别。本章将详细讨论元数据的意义及其在可执行文件中的存储,读者需要对传统PE格式有所了解,因为本章会跳过这些基础 内容而直接进入.NET的扩展部分。

如果用普通的PE文件结构工具查看.NET可执行文件,不会发现它有什么特别之处,因为所有的头结构、节名称都和Win32下的相同。但细心的读者会发 现,.NET PE文件的第15项数据目录COM大多数情况下的RVA为0x2008,大小为0x48,而该地址正指向了.text节。没错,.NET对PE的扩展主要 体现在了.text节的构造上:在Win32下,.text节保存的是汇编;而.NET中保存的是MSIL、元数据、以及各种特殊的.NET结构。本节首 先带领读者认识大变样后的.text节,随后介绍.NET PE中最重要的结构:CLR头。

图3.1为一般情况下.NET PE文件的.text节结构,通常包含八部分内容,比较重要的有以下几项:Common Language Runtime头(CLR头),这是整个.NET可执行文件综合信息的存放处,其作用类似于Win32下的PE头;MSIL代码和可选的异常处理表,这是 加密软件重点关注的数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值