鱼C论坛

 找回密码
 立即注册
查看: 2880|回复: 2

PE文件的时间戳问题,高32位怎么获得

[复制链接]
发表于 2013-12-4 22:58:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zuozhu_315 于 2013-12-4 23:00 编辑

看了小甲鱼的解密系统篇以后自己动手写PE解析器,到IAMGE_FILE_HEADER的时候遇到问题了,那个timeDateStamp是DWORD类型的,但是系统的
FileTimeToSystemTime( __in CONST FILETIME *lpFileTime, __out LPSYSTEMTIME lpSystemTime )
需要的参数是FILETIME 的结构体指针,该结构体有两个DWORD的参数,高32位和低32位组成一个64位的,
在IAMGE_FILE_HEADER里面说
The low 32 bits of the time stamp of the image. This represents the date and time the image was created by the linker。
那么高32位怎么获得!!!!直接把高32位赋值为0 的,然后调用FileTimeToSystemTime得不到正确的时间。。。。。

顺便说一句,小甲鱼的那个我看不懂delphi,也没有装,打不开,但是他没有调用FileTimeToLocalFileTime,得到的时间是格林威治的时间

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-5 19:52:12 | 显示全部楼层
要得到高32就把高32和32个"1"和32个"0"进行"与"运算就行了,比如X&111111...11111(32个1)00000000000...000(32个0).用计算器转换成16进制或是10进制再相"与"即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-5 20:09:57 | 显示全部楼层

我的意思是FILETIME结构体的32位的值从哪儿得到,低32位的可以从PE的时间戳中得到,我拿什么赋值给高32位?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 20:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表