首页
社区
课程
招聘
[原创][脱壳修复]win7下简单处理重定位表
2015-4-23 15:14 26327

[原创][脱壳修复]win7下简单处理重定位表

2015-4-23 15:14
26327
操作很简单,高手请直接看动手实践
问题介绍:
   对于脱壳修复导入表后的程序,在XP下可以执行,但是换到win7上就直接崩溃的问题。
通常情况是因为win7对exe文件的加载进行了基址重定位,而此时如果可执行程序包含重定位表,往往加壳后会对PE重定位表进行压缩,如果运气不好,加壳程序会手动修正执行文件的重定位地址,这时dump下来的程序就会因为丢失重定位表造成程序无法正常执行。所以脱诸如upx一类的压缩重定位表的程序,往往需要手动找出重定位表修复,这样虽然属于较完美脱壳,但复杂度却略高,对于我等懒人时一种折磨,那么只能使用比较懒得方法进行不完美脱壳。

解决思路:
   既然找回重定位表有些复杂,那么我们就不找回重定位表了 ,我的思路是:在壳更正完重定位表后进行脱壳,此时将镜像基址设置为用OD脱壳时被加载的随机基址, 这时只要PE每次被加载的镜像基址是相同的,那么重定位表也就没有用了.
   下面就来说如何实现上面的思路:
首先,需要找到如何禁止PE被win7重定位基址,

懒得找文档,这里我直接用编译器生成两个程序,一个是开启随机地址一个是未开启随机地址的。  
然后使用LordPE进行PE比较。

  
从上图可以看出两个PE文件主要区别是特征值中的重定位分离属性不同,通过实践发现此处属性就是我们要修改的了,将该属性勾选上后win7 PE装载器将不会对镜像基址进行随机分配了。

动手实践:
用UPX压缩含有重定向属性的PE文件,现在开始脱壳,找到OPE后直接对用OD脱壳,关键就是这里

起始地址我们设置为此次装载器加载的地址即10C0000,大小8E000(这两个信息可通过LordPE查看)
人口地址为当前OEP-镜像基址,即10E5474-10C0000=25474h
代码基址和数据基址默认就可以(貌似这两个东西没有用途..),点击脱壳。
    此时如果你去执行脱壳后程序会发现程序是无法执行的,这时用LordPE修改PE属性的 IMAGE_NT_HEADERS.FileHeader.Characteristics属性,为其添加"重定位已分离选项"


最后,可以清除掉PE的重定位表信息了

通过该方法同样可以处理Dll的重定位,但是因为dll没有了重定位表,当加载基址冲突时就玩完了....
所以,该方法只能算是半完美处理重定位表。

win7下简单处理重定位表.doc

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (11)
雪    币: 69
活跃值: (270)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
msf 2015-4-23 16:46
2
0
不错 虽然不太懂 顶
雪    币: 10243
活跃值: (16482)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhczf 2015-4-23 18:01
3
0
虽然看懂,但知道是技术高手,才能写出这么牛的技术文章
雪    币: 33
活跃值: (244)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
fishleong 2015-4-25 02:13
4
0
好技巧,谢谢!!!!!!
雪    币: 144
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zylyy 2015-4-25 08:17
5
0
噢耶,没试过
雪    币: 62
活跃值: (515)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kxxylt 2015-4-25 09:49
6
0
感谢楼主的技术分享。辛苦了。
雪    币: 4928
活跃值: (967)
能力值: ( LV9,RANK:175 )
在线值:
发帖
回帖
粉丝
蚯蚓降龙 2015-4-25 11:39
7
0
学习了,原来LordPE分离重定位可以这样用,在WIN7以上的系统上脱壳有时就会奔溃,XP就不会,没有修复重定位的原因,懒得深入了
雪    币: 133
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
不追浮云的人 2015-4-27 09:10
8
0
好技巧,
雪    币: 258
活跃值: (84)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
hellotong 1 2015-4-30 12:28
9
0
我想知道你截图是怎么截的有撕边
雪    币: 6701
活跃值: (3325)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
htpidk 2015-5-6 22:22
10
0
新技能GET,思路不错
雪    币: 244
活跃值: (163)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
airbus 2019-10-21 15:32
11
0
好奇怪,UPX压缩后直接用upx解压缩不行呀?
雪    币: 799
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lzys 2019-12-22 01:19
12
0
这个偶尔用得到,先谢谢分享!
游客
登录 | 注册 方可回帖
返回