标题:如何用VB准确找到TimeDateStamp时间戳所在的偏移位置
只看楼主
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
结帖率:89.13%
 问题点数:0 回复次数:6 
如何用VB准确找到TimeDateStamp时间戳所在的偏移位置
不同的EXE,时间戳的偏移位置居然不一样。
我想把EXE直接转换成十六进制代码,通过偏移位置修改好十六进制代码(TimeDateStamp时间戳)后,再把十六进制代码还原为EXE,达到修改的目的。(此步已编程实现)

问题是:如何能确定不同的EXE  TimeDateStamp时间戳 十六进制代码的偏移位置?


搜索更多相关主题的帖子: 十六进制 时间戳 位置 偏移 代码 
2022-08-16 17:46
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
你只会傻傻的读吗?

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编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2022-08-16 19:41
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
以下数据都是按 16进制给出,除非特别注明
按你 1.exe
e_lfanew = 00 00 00 B8
e_lfanew +4 +2 +2 =00 00 00 C0

按你 2.exe
e_lfanew = 00 00 00 80
e_lfanew +4 +2 +2 =00 00 00 88
 
你看看对得上了吗?

授人于鱼,不如授人于渔
早已停用QQ了
2022-08-16 19:45
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
很复杂,知道了具体结构,感染EXE都是很容易的事。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-08-16 20:01
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
对了,你WIN10 系统,还是笔记本,装的好像是 360 杀毒,不卡吗?
WIN10,自带杀毒软件的。

然后看到五笔

授人于鱼,不如授人于渔
早已停用QQ了
2022-08-16 22:45
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
不卡,不同时开多个虚拟机不会卡。

HP笔记本,Win10系统

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-08-17 05:08
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
以下是引用风吹过b在2022-8-16 19:45:31的发言:

以下数据都是按 16进制给出,除非特别注明
按你 1.exe
e_lfanew = 00 00 00 B8
e_lfanew +4 +2 +2 =00 00 00 C0

按你 2.exe
e_lfanew = 00 00 00 80
e_lfanew +4 +2 +2 =00 00 00 88
 
你看看对得上了吗?



你猜对了。


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-08-17 20:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509800-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.346613 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved