托管可执行文件结构■严峻■问题:运行环境头在哪里????

loverP 2004-12-29 01:47:25
最近在研究.NET元数据和托管exe文件的结构。在研究过程中我发现了一个巨大的问题:运行环境头的内容不对!

通过自制的dump程序进行分析,得知一个托管exe文件中运行环境头定位在0x2008处,大小为0x48(72bytes)。可在这里读到的运行环境头内容如下:

>>>>>>>>>> RVA [ 0x00000000 00002008 ] <<<<<<<<<<
IMAGE_COR20_HEADER:
cb : 0x9DB5D5AA
MajorRuntimeVersion : 0x2062
MinorRuntimeVersion : 0x9DC3
MetaData_RVA : 0x9DD2EE0F
MetaData_Size : 0x9DEDC76B
Flags : 0x9DFBB15F
EntryPointToken : 0x9E310AB0
Resources_RVA : 0x9E4A2C44
Resources_Size : 0x9E7843D2
StrongNameSignature_RVA : 0x9E7D5020
StrongNameSignature_Size : 0x9EA9F204
CodeManagerTable_RVA : 0x9EEF53CE
CodeManagerTable_Size : 0x9F0122EA
VTableFixups_RVA : 0x9F0EE929
VTableFixups_Size : 0x9F14C639
ExportAddressTableJumps_RVA : 0x9F210B7C
ExportAddressTableJumps_Size : 0x9F4D1785
ManagedNativeHeader_RVA : 0x9F574813
ManagedNativeHeader_Size : 0x9F62915C

这明显是错误的。
再看另一个:

>>>>>>>>>> RVA [ 0x00000000 00002008 ] <<<<<<<<<<
IMAGE_COR20_HEADER:
cb : 0x7B021203
MajorRuntimeVersion : 0x00AA
MinorRuntimeVersion : 0x0400
MetaData_RVA : 0xAB7B0212
MetaData_Size : 0x12040000
Flags : 0x00AC7B02
EntryPointToken : 0x02120400
Resources_RVA : 0x0000AA7B
Resources_Size : 0x02125904
StrongNameSignature_RVA : 0x0000AD7B
StrongNameSignature_Size : 0x7B021204
CodeManagerTable_RVA : 0x040000AB
CodeManagerTable_Size : 0x002F2859
VTableFixups_RVA : 0x01120A00
VTableFixups_Size : 0x0000BD7C
ExportAddressTableJumps_RVA : 0x00B87B04
ExportAddressTableJumps_Size : 0x48280400
ManagedNativeHeader_RVA : 0x130A0000
ManagedNativeHeader_Size : 0x017B0204

这也出现着明显的错误。

我的dump是用C#写的,不过为了验证,我用C也写了一个。两者算法不同(C#是一个字节一个字节读取数据,C是整个结构一起读取)得到的结果是一样的,那么也就是说得到的该结构RVA和Size的数据是没有问题的。

(还有,这个0x2008的位置也是我通过读取文件获得的,尽管每次这个值都是固定的,我还是实际地获取了一下的。)

那么现在只有一个解释:运行环境头不在0x2008!!那么,它在哪呢?请高手指点。
...全文
208 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
loverP 2005-01-10
  • 打赏
  • 举报
回复
非常感谢 saucer(思归) 朋友!你提供的网站对我大有帮助!多谢多谢!
leileibinbin 2005-01-04
  • 打赏
  • 举报
回复
学习!学习!!!
CWYCN 2005-01-02
  • 打赏
  • 举报
回复
学习
hujiiori 2004-12-31
  • 打赏
  • 举报
回复
学习
saucer 2004-12-29
  • 打赏
  • 举报
回复
http://www.vijaymukhi.com/documents/books/metadata/chap1.htm
zhouzh197895 2004-12-29
  • 打赏
  • 举报
回复
學習一下

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧