吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6773|回复: 9
收起左侧

[原创] 教你如何写Aspack脱壳脚本

[复制链接]
Martin 发表于 2014-10-29 23:10
本帖最后由 Martin 于 2014-10-30 09:26 编辑

教你如何写Aspack脱壳脚本
本文所述的内容皆源于上一节的DLL文件的脱壳内容,本篇文章主要讲一下上篇文章的DLL(地址:http://www.52pojie.cn/thread-299459-1-1.html)使用脚本脱壳及重定位地址的查找。好吧,这里不多说了,直接上分析过程。首先已经知道了Aspack壳的动态链接库(DLL)文件的重定位地址搜索以下代码就可迅速找到重定位地址:

1

1
      好的,这个重定位地址也就是sub ecx,0x8;shr  ecx,1这里就是关键点,这两个前面的机器码和在一起就是83E908D1E9,那么就可以在脚本编辑器中进行写这段脚本了。
[Asm] 纯文本查看 复制代码
var Relocation //存放重定位地址
Var aa           //声明变量
FIND  eip,#83E908D1E9#        //搜索上面那段代码
MOV  aa,$RESULT //将搜索的eip地址给aa,也就是图上的771f9处
MSG  aa   //弹出aa
     好的这段脚本已经完工了,那么还说了我们要将断点设置在771C4处的je跳转出,那么已经获取了771F9处的地址,要找到771C4很容易就找到了,因为两者相差35,我们只需要将771F9-35=771C4了,好的这里已经知道了思路。开始写下一段设断点脚本
[Asm] 纯文本查看 复制代码
SUB  aa,35                //771C4的地址处
BP   aa                //在771C4处下断点
RUN                        //让程序跑一下,就会段在771C4处
      这样程序就段在了771C4位置处,从771C4到771DC的magic jmp处只需要单步走4次就好了,单步到了magic jmp后不能让这个跳转跳,这时候我们可以改变ZF标志位为0,这样跳转就不会跳了

2

2
      脚本实现单步走:
[Asm] 纯文本查看 复制代码
STO
STO
STO
STO
MOV        !ZF,0        //改变ZF标志位为0
        通过上图可以看到,magic jmp没有跳过之后再进行单步4下就可以到达存放重定位地址的地方,这时候我们只需要取出[ebp+539]里面的值就好,因为里面存放的就是重定位地址。
[Asm] 纯文本查看 复制代码
STO                //单步走四次
STO
STO
STO
MOV Relocation,ebp    //将ebp地址给了Relocation变量
ADD Relocation,539//将Relocation+539
MOV Relocation,[Relocation]        //这是取出来的就是ebp+539的值,程序中是70000
MSG Relocation        //弹出这个70000
BC                //清楚断点
好的,已经找到了重定位的地址之后,就可以向下发现规律,我们发现程序到达OEP之前的时候有一个popad,如下图所示:

3

3
那么就可以用这个当做关键点,查找popad:
[Asm] 纯文本查看 复制代码
FINDOP eip,#61#        //从当前位置opcode的61指令
MOV bb,$RESULT
MSG bb
BP bb                       //下断点
下好了断点之后将程序运行起来,段在上面的断点处只需要单步走4次就到了程序的OEP,然后退出脚本就可以了。
[Asm] 纯文本查看 复制代码
RUN                                //运行程序
STO                                //单步走
STO
STO
STO
BC                                //清楚断点
RET                                //返回
完整的脚本如下所示:
[Asm] 纯文本查看 复制代码
VAR Relocation
VAR aa
VAR bb
FIND eip,#83E908D1E9#
MOV aa,$RESULT
MSG aa
SUB aa,35
BP aa
RUN
STO
STO
STO
STO
MOV !ZF,0
STO
STO
STO
STO          
MOV Relocation,ebp
ADD Relocation,539
MOV Relocation,[Relocation]
MSG Relocation
BC
FINDOP eip,#61#
MOV bb,$RESULT
MSG bb
BP bb
RUN
STO
STO
STO
STO
MSG "欢迎来到OEP,By:BattleHeart"
BC
RET
程序运行结果:
这是第一个Msg弹出来的是查找的sub ecx,0x8;shr  ecx,1后的eip的位置:

4

4
第二个msg是重定位地址

5

5
第三个msg就是弹出的popad的地址处:

6

6
这样点击确认后就到了程序的OEP处;

7

7

免费评分

参与人数 7热心值 +7 收起 理由
Double_Z + 1 谢谢@Thanks!
langzi + 1 谢谢@Thanks!
firefly + 1 这个好,必须支持
小淫仙 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
Shark恒 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
9456-XN + 1 我很赞同!
Bds1r + 1 膜拜!!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

梵天帝君 发表于 2014-10-29 23:35
沙发 另求上一课
布拉修之吻 发表于 2014-10-29 23:47
旧时光的小夏天 发表于 2014-10-30 01:46
呀呀 发表于 2014-10-30 06:15 来自手机
……膜拜楼主
 楼主| Martin 发表于 2014-10-30 09:26

连接已补上!
firefly 发表于 2014-10-30 11:52
                       这是要出系列的节奏吗?
dreamnyj 发表于 2014-11-3 15:37
这教程写的太好了。学习并收藏了。小丁,我最近碰到了个问题,关于网页调DLL的调试问题,能不能过来帮我参谋参谋。
http://www.52pojie.cn/forum.php? ... p;page=1#pid6907950
jayfox 发表于 2014-11-4 11:10
这个不错,学习了
bdboy 发表于 2014-11-4 13:45
楼主辛苦了。。。。学习学习收了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-18 01:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表