#PE结构
重点关注0x3c,其中存放了的地址偏移为
P
E
0000
P E 00 00
PE0000。DOS stub后面跟的是NT头,
这个头的一个始是一个字母PE后面跟两个字节的0作为签名。
通过0x3f偏移,我们再移四个字节,后面就是NT头,
值得关注的有
之所以叫可选,是因为在目标文件(.obj)中并不包含可选头,只在镜像文件(.exe)中包含可选头。
而32位和64位程序,其可选头大小是不同的。可选头紧跟NT头。
NT头分为3个部份
标准域 PE32占28个字节,PE32+占24个字节
windows 专用域 PE32点用68字节,PE32+占用88字节
数据目录 可变,大小不确定。
magic 0x10b和前面的0x014c在一起混,0x20b和0x8664在一起混。一个表示PE32,一个表示PE32+。