吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 6057|回复: 33

[原创逆向图文] 教你如何写Aspack脱壳脚本

  [复制链接]
BattleHeart 发表于 2014-10-29 23:00 | 显示全部楼层 |阅读模式

本帖最后由 BattleHeart 于 2014-10-30 09:34 编辑

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

1

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

2

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

3

3
    那么就可以用这个当做关键点,查找popad     
  1. FINDOP eip,#61#                //从当前位置opcode的61指令
  2. MOV bb,$RESULT
  3. MSG bb
  4. BP bb                                  //下断点
复制代码
下好了断点之后将程序运行起来,段在上面的断点处只需要单步走4次就到了程序的OEP,然后退出脚本就可以了。
  1. RUN                                 //运行程序                                       
  2. STO                                 //单步走
  3. STO
  4. STO
  5. STO
  6. BC                                  //清楚断点
  7. RET                                //返回
复制代码
完整的脚本如下所示:
  1. VAR Relocation
  2. VAR aa
  3. VAR bb
  4. FIND eip,#83E908D1E9#
  5. MOV aa,$RESULT
  6. MSG aa
  7. SUB aa,35
  8. BP aa
  9. RUN
  10. STO
  11. STO
  12. STO
  13. STO
  14. MOV !ZF,0
  15. STO
  16. STO
  17. STO
  18. STO         
  19. MOV Relocation,ebp
  20. ADD Relocation,539
  21. MOV Relocation,[Relocation]
  22. MSG Relocation
  23. BC
  24. FINDOP eip,#61#
  25. MOV bb,$RESULT
  26. MSG bb
  27. BP bb
  28. RUN
  29. STO
  30. STO
  31. STO
  32. STO
  33. MSG "欢迎来到OEP,By:BattleHeart"
  34. BC
  35. RET
复制代码
程序运行结果:
这是第一个Msg弹出来的是查找的sub ecx,0x8;shr  ecx,1后的eip的位置:

4

4
第二个msg是重定位地址

5

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

6

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

7

7



点评

heiheidz”点评说:
http://www.52pojie.cn/thread-299645-1-1.html这个也是你发的  发表于 2014-10-30 12:07

评分

参与人数 22威望 +2 HB +59 THX +11 收起 理由
xiaoxixpj + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
29590 + 1
24567 + 2
Jawon + 2
一路走来不容易 + 1
Soul1999 + 1
娄胖胖 + 1
sjtkxy + 1
冷亦飞 + 1
消逝的过去 + 2
laoer2009 + 5 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
天使替我爱你 + 1
叶落花开 + 2
jaunic + 2
hnymsh + 1
lies + 1
lanyueliang518 + 1 + 1 [快捷评语] - 评分=感恩!简单却充满爱!感谢您的作品!
wdujs600 + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
zx2cwf + 5 + 1 我很赞同!
heiheidz + 1 + 11 + 1 最好能来se脚本,那就更棒了,新手教程支持你
Dean + 10 + 1 积极评分从我做起,感谢!
Shark恒 + 1 + 10 + 1 真心不错,我发现楼主的教程制作的非常精细。

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-29 23:51 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
起凡第一华佗 发表于 2014-10-30 01:28 | 显示全部楼层

发现一个大牛
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Dean 发表于 2014-10-30 08:49 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
bigeorry 发表于 2014-10-30 09:33 来自手机端 | 显示全部楼层

楼主真是太厉害了,小白真心需要多学习啊
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| BattleHeart 发表于 2014-10-30 09:35 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| BattleHeart 发表于 2014-10-30 09:35 | 显示全部楼层

bigeorry 发表于 2014-10-30 09:33
楼主真是太厉害了,小白真心需要多学习啊

哪有,一起努力~~~
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
AoQc 发表于 2014-10-30 09:55 | 显示全部楼层

看看大牛长什么样 顺便兜售瓜子饮料爆米花~
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zx2cwf 发表于 2014-10-30 13:43 | 显示全部楼层

大牛你好  大牛再见
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| BattleHeart 发表于 2014-10-30 14:52 | 显示全部楼层

LWJ一辈子 发表于 2014-10-30 13:43
大牛你好  大牛再见

别闹!别闹!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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