首页
社区
课程
招聘
[原创]脱一个vmp弄懂了反调试,输入表,还有vmp的爆破
发表于: 2013-12-22 11:42 12775

[原创]脱一个vmp弄懂了反调试,输入表,还有vmp的爆破

2013-12-22 11:42
12775

上周五下了个碧之轨迹来玩,当然是破解过的,打开之后,经典的falcom开头,接下来居然是更经典的"健康游戏忠告",真是....


立马打开od,载入发现有壳,peid查看是yoda1.02,上网看一下相关的文章,貌似是反调试的壳,在od里面运行也确实是提示检测到调试器了


单步跟了一阵,发现却和网上的描述不同,虽然都是反调试...


打开peid的userdb.txt,里面查找一下yoda的特征码,发现居然从头到尾都是问号,看来这数据库将识别不到的都归为yoda了


去掉这特征码就什么都查不到了,没办法,硬着头皮脱吧



打开"收藏"已久的<<脱壳的艺术>>看了一遍,基本了解了一下


像IsDebuggerPresent这样的Sod已经灭掉了


但是CheckRemoteDebuggerPresent还有几个,ODAdvance有选项但是却不工作的,手动修改一下也过了


但是还是会被检测到调试器


在单步的时候我发现一个地方在对比字符串,就是api的函数


这壳干脆不用GetProcAddress,直接从dll文件映射里面找


来到对比成功的地方,下断,看一下取了什么函数出来


有VirtualProtect之类的,还有反调试相关的


重要的还有一个CloseHandle,我看其调用这个函数的时候参数很可以


上网查了一下,这函数也能反调试的,就是传一个无效的句柄,具体就上百度看吧


将这个函数搞掉,接下来就用内存断点法很快就来到oep了


将上面过程写成脚本,以后轻轻一点就能直达oep



然后就是修复输入表了,脱壳的流程虽然都懂,但是一直都不知道是什么回事


这次却不同了,imprec只找到了5个无效的指针,但是程序里面确实是用了很多的api


无奈继续跟踪,从oep开始


单步跟进了2个call,结果就来到了花指令


这花指令有意思,虽然跳来跳去,但是重要的代码就3个地方:



1)


算出api入口


mov eax,XXXXXXXX


mov eax,[eax+XXXXXXXX]


lea eax,[eax+XXXXXXXX]


然后将eax放到栈顶


最后一个retn XX,就来到了api的入口


这里XXXXXXXX就是一个立即数,eax可以是esp以外的7个寄存器


而且这些花指令全在同一区段中,对于每一次调用都会有这样一段代码



2)


处理返回地址


lea eax,[eax+1]


eax代表7个寄存器


这里增加的是返回的地址


有时api调用会在后面加一个垃圾字节,然后在花指令里面处理返回地址



3)


破坏堆栈


这个没什么特征,有时会在call之前多push一两次,然后花指令里面pop回来



对付这个花指令,有个一箭三雕的方法


从call开始,使用脚本的单步进入跟踪,条件就是eip在程序代码的外面则停下来



停下来的时候,eip就是api的地址



[esp]就是返回地址,对比一下就知道有没有垃圾字节


有的话就将垃圾字节变成nop



如果没有破坏堆栈的话,esp的值应该减少了4


如果没有减少,就将call前面的push去掉


        如果前面没有push,就将call变成jmp


如果esp反而增加4,就将push去掉,同时将call变成jmp


这时候call前面肯定是有push的,就这几种情况了



获得api地址之后就找块空地放着,然后再找一块空地放jmp


然后原来的call就指向这个jmp


保存之后,打开imprec,手动输入自己填充的iat,修复


弄好这里,我感觉对输入表和iat终于有相当的理解了



其实到这里还不能运行,我用od载入修复之后的程序


发现入口居然还是在原来的地方


将od设在系统入口停下


跟了一下,发现在另一个地方保存着壳的入口


将其设0,然后就能来到oep了


(之后翻加密与解密的时候发现这叫tls,不管如何,这次是停在了oep)



看看运行如何,窗口出来了,然后立马就出错,还真是兴奋了一下


立刻接上od,发现实在一个叫做读档的导出函数里面出错的


还没见过exe也有导出函数



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 5
支持
分享
最新回复 (23)
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
牛人,赞一下
2013-12-22 12:26
0
雪    币: 112
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
求大牛移植闪轨
2013-12-22 18:41
0
雪    币: 15
活跃值: (28)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
闪轨迟早会出的
2013-12-22 19:23
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
高手啊,向你学习。就是现在还看不大懂!
2013-12-22 21:47
0
雪    币: 56043
活跃值: (21230)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
现在你kx够了,可以购买邀请码转正了。
2013-12-22 22:30
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
VMP的反调试就那么几招,路过
2013-12-22 23:06
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
普通的VMP跟腾讯的VMP有什么区别?
2013-12-22 23:25
0
雪    币: 2664
活跃值: (3395)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
9
TX-VMP  
2013-12-23 00:12
0
雪    币: 15
活跃值: (28)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
非常感谢!!太激动啦
2013-12-23 09:30
0
雪    币: 645
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
应该说Z大的VMP插件牛逼才对 没了插件 还怎么分析 太依赖了
2013-12-23 09:36
0
雪    币: 15
活跃值: (28)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
这个是确实,一个插件就能让不懂vmp的人也能站在同样高度上破解
但是不能说是依赖,想想我们是不是都在依赖od
2013-12-23 17:34
0
雪    币: 350
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
用正版的exe来脱会简单不少, 什么IAT之类的完全没有破坏
然后再从破解版的EXE抄那几个被SF VM的函数过去就完了
2013-12-23 17:56
0
雪    币: 15
活跃值: (28)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
其实前两个月我想要破解零轨结果失败了,这次就下了破解版
等我再次挑战的时候可能还要向你请教一下
2013-12-23 18:33
0
雪    币: 70
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
把有限的生命千万不要浪费在脱壳上面!
2013-12-24 13:25
0
雪    币: 345
活跃值: (711)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
楼主 厉害啊。。。向你学习。
2013-12-24 13:31
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
17
厉害,不懂的情况下,随便看看就有这样了,研究一下还得了,哈哈
2013-12-25 15:28
0
雪    币: 1
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
不错!向楼主学习VMP不简单呀
2013-12-27 02:01
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
牛逼人物
2013-12-27 07:11
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
20
感谢你终于为我的懒惰和逃避找出这么个理由来,我可以走出来了
2013-12-28 23:04
0
雪    币: 1234
活跃值: (317)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
lz这么轻描淡写,不知道花了多少功夫了吧。
2014-6-27 22:29
0
雪    币: 144
活跃值: (408)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
mark
2014-7-25 12:50
0
雪    币: 5
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
厉害  学习了!
2017-7-3 21:03
0
雪    币: 2
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
24
破解之路要坚持,但是破解不是出路
2017-7-8 16:49
0
游客
登录 | 注册 方可回帖
返回