首页
社区
课程
招聘
[求助]读取在EXE文件尾添加的数据问题
发表于: 2007-1-23 17:29 7148

[求助]读取在EXE文件尾添加的数据问题

2007-1-23 17:29
7148
一程序在xxx.exe文件尾添加数据
xxx.exe 中 算出自身的长度,获取 自身加载的位置,加载的位置+自身长度 = 数据开始? 这样对不?
但是 我用加载的位置+自身长度 读后面的数据的时候 并没有取到数据
好象是添加在 xxx.exe后面的数据并没有加载到地址空间
需要自己加载吗?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
exe的尾部附加数据不会和程序一起映射到进程中,如果你要读取尾部附加数据,只有自己用CreateFile加载文件再读取。
2007-1-23 17:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
比如 修改该EXE的PE文件,
然后这个EXE运行的时候 会自动把尾后的数据加载到进程地址空间内
2007-1-24 09:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
本来如果自动加载的话   加载的位置+自身长度 = 数据开始
但是如果用 CreateFile 的话
HANDLE hFile = CreateFile(strPath,  GENERIC_READ, 0,
     NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
     DWORD dwFileSize = GetFileSize(hFile, NULL);
HANDLE hFileMap = CreateFileMapping(hFile, NULL, PAGE_READONLY,
      0, dwFileSize, NULL);

PVOID pvFile = MapViewOfFile(hFileMap, FILE_MAP_READ, 0, 0, 0);
pvFile + ? = 数据开始 位置呢?
比如 在我这个程序里 我得到 SizeOfImage 为0X35000
但是dwFileSize为0X25000
2007-1-24 13:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个方法确实不错!
2007-2-9 17:43
0
游客
登录 | 注册 方可回帖
返回
//