| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1192 人关注过本帖
标题:如何用VB准确找到TimeDateStamp时间戳所在的偏移位置
只看楼主 加入收藏
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册: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
帖 子:4947
专家分:30084
注 册: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
帖 子:4947
专家分:30084
注 册: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: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
很复杂,知道了具体结构,感染EXE都是很容易的事。

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

然后看到五笔

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

HP笔记本,Win10系统

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-08-17 05:08
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册: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
快速回复:如何用VB准确找到TimeDateStamp时间戳所在的偏移位置
数据加载中...
 
   



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

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