PE 类型 的 EXE 结构(百度来的)为:
1、DOS头,64个字节,关注前4个字节和最后4个字节。前4个字节是文件类型标志,最后4个字节(e_lfanew)是 PE头的偏移量。
2、PE头,
前面三字段分别为:(有部分是C++ 的描述,将就的看吧)
PE头标志,4字节
WORD Machine;//运行平台
WORD NumberOfSections;//区块表的个数
DWORD TimeDataStamp;//文件创建时间,是从1970年至今的秒数
TimeDataStamp ,才是你要的。
那么这个字段在什么位置呢?
在 e_lfanew (+60H)这个位置的值 +4 +2 +2 的位置
e_lfanew (+60H) 这个位置是什么,+60H 到 +63H,4个字节,是 PE头的位置,相对文件的偏移量,
+4 是 PE标志
+2 是 Machine,这是integer 类型
+2 是 NumberOfSections
然后就是 TimeDataStamp
DOS头 到 PE头 之间是 DOS代码,DOS代码 一般是编译器给出的,但也可以你想写多长就写多长,所以PE头的位置不固定,依靠 e_lfanew 指出,而 e_lfanew 就是DOS头的最后4个字节。
[此贴子已经被作者于2022-8-16 19:54编辑过]