PE文件结构与CE中的E32,O32

在之前的BinFS中介绍过Image中的module。对于在Image的module来说,在build image的过程中PB会将Dll进行解析,之后再打包到Image。在TOCentry中会有E32Offset和O32Offset的成员,看名称看是Offset,不过根据代码看好像并不是Offset而是E32和O32结构的地址。那么E32和O32和PE结构有什么关系?如果一个Dll或是exe没有经过解析,那么这个Dll和Exe就是一个PE的结构,在PE结构中,第一部分是DOS MZ Header,在MZ Header的最后一个DWORD,存放的是PE Header的Offset,根据这个Offset可以找到PE Header,PE Header的开始有个标志“PE”,这个PE Header在CE中就相当于E32的结构,紧接着PE Header是Section Table,Section Table之后是若干个Section,这个Section Table就相当于O32结构,所以说拿到E32与O32就可以拿到Dll的各个Section。

猜你喜欢

转载自blog.csdn.net/gsymichael/article/details/5028201