吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[原创] 另类方法脱ASProtect v1.23 RC1,超级简单,感谢超哥的教程!!!

[复制链接]
yangand 发表于 2011-9-23 20:31
本帖最后由 yangand 于 2011-9-23 20:32 编辑

       Asprotect的壳可以用脚本秒脱,本文旨在讨论一下脱壳的方法。

      之前看过天草老师讲的ACPROTECT的另类脱壳,之前是看学破解,脱壳的知识基本上看不懂,最近两天又学了一下ACPROTECT的脱壳,有一个也是壳王徐超大牛讲的ACPROTECT的另类脱壳教程,论坛里可以下到,就是那个《脱壳教程27课》。讲的是如何用巧妙的方法如果不用寻找STOLEN CODE,就能完美脱壳。估计大多数人都看过,没看过的,可以在动画发布区搜一下。估计他还有比这27课多的教程,没有被发出来。希望能得到超哥更多的教程。

        本人脱壳方面,也是菜鸟,这个方法也是试出来的,我也不知道为什么这样,大体估计也就是那个最佳脱壳时机的理论吧。
        依据就是想像,ACPROTEC和ASPROTECT都能用最后一次异常脱壳,另类的方法,估计也能行,结果是真能行。

        先大至说一下ACPROTECT另类脱壳的方法。
        第一步,通过最后一次异常法找到假的OEP,并记下来。
        第二步,通过ESP定律找到最佳脱壳时机,然后DUMP再修复就可以了。
        如果不理解上面的方法,请看一下超哥的教程。

        下面详细说一下。
         OD载入程序,入口处为:
00401000 >  68 01C06D00     push SoWorker.006DC001
00401005    E8 01000000     call SoWorker.0040100B
0040100A    C3              retn
0040100B    C3              retn
0040100C    74 23           je short SoWorker.00401031
0040100E    C039 74         sar byte ptr ds:[ecx],74
00401011    0FD19CA4 0599E0>psrlw mm3,qword ptr ss:[esp+CFE09905]
00401019    AA              stos byte ptr es:[edi]
0040101A    B5 CC           mov ch,0CC

F7单步几步,找到PUSHAD(ESP是最简单的,能用ESP就最好了)
006DC001    60              pushad
006DC002    E8 03000000     call SoWorker.006DC00A
006DC007  - E9 EB045D45     jmp 45CAC4F7
006DC00C    55              push ebp
006DC00D    C3              retn
006DC00E    E8 01000000     call SoWorker.006DC014
006DC013    EB 5D           jmp short SoWorker.006DC072

在006DC002 处下ESP硬件断点

下面找最后一次异常处和OEP的地方。
最后一次异常,可以用OD的异常记数器插件,这样既快又准。
最后一次异常停在
014239EC    3100            xor dword ptr ds:[eax],eax
014239EE    64:8F05 0000000>pop dword ptr fs:[0]
014239F5    58              pop eax
014239F6    833D B07E4201 0>cmp dword ptr ds:[1427EB0],0
014239FD    74 14           je short 01423A13
014239FF    6A 0C           push 0C
01423A01    B9 B07E4201     mov ecx,1427EB0
01423A06    8D45 F8         lea eax,dword ptr ss:[ebp-8]
01423A09    BA 04000000     mov edx,4
01423A0E    E8 2DD1FFFF     call 01420B40
01423A13    FF75 FC         push dword ptr ss:[ebp-4]
01423A16    FF75 F8         push dword ptr ss:[ebp-8]
01423A19    8B45 F4         mov eax,dword ptr ss:[ebp-C]
01423A1C    8338 00         cmp dword ptr ds:[eax],0
01423A1F    74 02           je short 01423A23
01423A21    FF30            push dword ptr ds:[eax]
01423A23    FF75 F0         push dword ptr ss:[ebp-10]
01423A26    FF75 EC         push dword ptr ss:[ebp-14]
01423A29    C3              retn

打开内存镜像窗口,
在00401000代码代下内在断点,SHIFT+F9,程序停在了假的OEP处。
004F27CF    FF15 9CC25200   call dword ptr ds:[52C29C]
004F27D5    33D2            xor edx,edx
004F27D7    8AD4            mov dl,ah
004F27D9    8915 34306900   mov dword ptr ds:[693034],edx
004F27DF    8BC8            mov ecx,eax
004F27E1    81E1 FF000000   and ecx,0FF
004F27E7    890D 30306900   mov dword ptr ds:[693030],ecx
004F27ED    C1E1 08         shl ecx,8
004F27F0    03CA            add ecx,edx
004F27F2    890D 2C306900   mov dword ptr ds:[69302C],ecx
004F27F8    C1E8 10         shr eax,10
004F27FB    A3 28306900     mov dword ptr ds:[693028],eax
004F2800    6A 01           push 1
004F2802    E8 933B0000     call SoWorker.004F639A
004F2807    59              pop ecx
004F2808    85C0            test eax,eax
004F280A    75 08           jnz short SoWorker.004F2814
004F280C    6A 1C           push 1C

记下假的OEP的位置,呆会用得到。(OEP: 004F27CF)

重新运行程序,最后一次异常法来到最后一次异常的地方。
上面有代码,就不在帖了,在01423A29处F2下好断点, SHIFT+F9,停在01423A29,
再次下SHIFT+F9,停在下面的代码处。为什么会停在这里?如果你还记得当时下了ESP的断点,就应该知道为什么了。
016E5827   /26:EB 01        jmp short 016E582B
016E582A   |C7              ???                                                    ; 未知命令
016E582B   \EB 02           jmp short 016E582F
016E582D    CD20 83EC372E   vxdjump 2E37EC83
016E5833    EB 01           jmp short 016E5836
016E5835  - E9 8D642479     jmp 7A92BCC7
016E583A    64:EB 01        jmp short 016E583E
016E583D    9A 8D640CBA 2BE>call far E12B:BA0C648D
016E5844    EB 01           jmp short 016E5847

这里就是最佳脱壳时机,在这里有LOADPE 把他DUMP出来,然后再请出IMPORTREC,选上进程,开始修得IAT。这里要注意一下。 IMPORTREC的OEP,要填上前面记下来的假的OEP。然后点自动查找IAT,这时个会有些无效的指针,先用等级一修复,之后再用插件修复一下,再转存一下就OK了。
unpack me.rar (1.74 MB, 下载次数: 694)


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

消逝 发表于 2012-3-8 23:48
现在正在脱ASProtect v1.23 RC1这个壳。让我很郁闷啊。学习了。
wangyunfei 发表于 2012-7-19 20:12
hhzb 发表于 2012-11-13 00:29
hhzb 发表于 2012-11-30 20:31
照上面的脱出来还是不能运行
小雨细无声 发表于 2013-1-24 12:01
找到许多这个壳的教程了,谢谢大神!
q2533714 发表于 2013-1-26 18:31
我去找找看看 谢谢分享
shuiiuhs 发表于 2013-6-22 16:54
之后再用插件修复一下
bess 发表于 2014-9-17 08:25
按照你说的做了,根本找不到OEP,而且地址我觉得不对啊
xng70837 发表于 2014-9-17 09:01 来自手机
认真学习和严格执行操作
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-18 00:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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