首页
社区
课程
招聘
[求助]PE文件修改后加载到内存中偏移了4字节
发表于: 2014-9-18 12:13 5987

[求助]PE文件修改后加载到内存中偏移了4字节

2014-9-18 12:13
5987
我写了个壳,将入口地址代码处20字节之内的代码转移到壳中,然后在入口写入jmp ...

其他的文件测试都可以,就是有一个文件不行,用OD载入后我发现,jmp后面的地址处向前偏移了4字节

但是用PEID查看hex吗,发现并并没有偏移

只要用OD载入内存就会向前偏移4字节

郁闷中……



昨天晚上加班到很晚,到家后把内存中最后两个节的内容dump出来了,然后跟文件中最后两个节做了对比,发现,最后一个节的开头多了4字节的 00 00 00 00 ,然后又找上一个节,发现上一个节的VirtualSize的大小为12004,加载进内存对齐后为13000,于是最后的4字节被挤到下一节去了,所以下一节在内存中多了上一节的最后4字节,但是不是很理解啊,对齐后为什么把最后的4字节挤到下一节去了呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
注意节对齐,或者你那个jmp算错了。
2014-9-18 15:18
0
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
20字节之内的代码没处理错吧?
没把完整的指令截断吧?
2014-9-18 16:01
0
雪    币: 20
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
jmp没算错,用PEID打开文件,直接跳到jmp的地址时正确的,但一旦用OD载入就向前偏移了4字节
2014-9-18 18:34
0
雪    币: 20
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
指令截得正常,在OD中看了下,跟源文件一样,是正确的
2014-9-18 18:35
0
雪    币: 267
活跃值: (438)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
6
od有缓存的。
2014-9-19 07:50
0
雪    币: 20
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
昨天晚上加班到很晚,到家后把内存中最后两个节的内容dump出来了,然后跟文件中最后两个节做了对比,发现,最后一个节的开头多了4字节的 00 00 00 00 ,然后又找上一个节,发现上一个节的VirtualSize的大小为12004,加载进内存对齐后为13000,于是最后的4字节被挤到下一节去了,所以下一节在内存中多了上一节的最后4字节,但是不是很理解啊,对齐后为什么把最后的4字节挤到下一节去了呢?
2014-9-19 09:17
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
让我说对了吧。节对齐一下就可以了。
2014-9-19 09:37
0
雪    币: 20
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
你的意思是,对倒数第二个节对齐?

这个节是是对齐后的啊,virtualSize是12004,内存对齐后为13000,为什么最后那4个字节会挤到下一节?内存已经对齐了啊?
2014-9-19 09:42
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
发文件发过来来瞅瞅。
2014-9-19 09:47
0
雪    币: 20
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
明天吧,文件在家里的电脑上,现在在上班,谢啦
2014-9-19 10:14
0
游客
登录 | 注册 方可回帖
返回
//