首页
社区
课程
招聘
[求助]用OD脱ASProtect壳时遇到问题了[已解决]
发表于: 2011-1-23 17:02 6033

[求助]用OD脱ASProtect壳时遇到问题了[已解决]

2011-1-23 17:02
6033
本人菜鸟。
先用PEID扫描了一下,显示:
ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov

-------------------------------------------------------分隔线-----------------------------------------------
多谢二楼的兄弟提醒,重新设置了一下忽略的异常,可以正确定位到最后一次异常的地方了,不过和教程上面的有一点不同,我说说我的过程:

前面的忽略掉,从硬件断点 (hr 0012FF68) 断下来的地方说起,代码如下:
01DA56B0   /EB 44           jmp     short 01DA56F6   <======== 停在这里了,F8一下
01DA56B2   |EB 01           jmp     short 01DA56B5
01DA56B4   |9A 51579CFC BF0>call    far 00BF:FC9C5751
01DA56BB   |0000            add     byte ptr [eax], al
01DA56BD   |00B9 00000000   add     byte ptr [ecx], bh
01DA56C3   |F3:AA           rep     stos byte ptr es:[edi]
01DA56C5   |9D              popfd
01DA56C6   |5F              pop     edi
01DA56C7   |59              pop     ecx
01DA56C8   |C3              retn
01DA56C9   |55              push    ebp
01DA56CA   |8BEC            mov     ebp, esp
01DA56CC   |53              push    ebx

从上面的jmp 来到这里:
01DA56F6    03C3            add     eax, ebx                         ; SO3D.00400000
01DA56F8    BB 00000000     mov     ebx, 0
01DA56FD    0BDB            or      ebx, ebx
01DA56FF    75 07           jnz     short 01DA5708
01DA5701    894424 1C       mov     dword ptr [esp+1C], eax
01DA5705    61              popad
01DA5706    50              push    eax
01DA5707    C3              retn   <========== 从上面一直 F7 跟到这里,再按F7一下就返回到 0078D55D 了
01DA5708    E8 00000000     call    01DA570D
01DA570D    5D              pop     ebp
01DA570E    81ED 4DE14B00   sub     ebp, 4BE14D                      ; ASCII CC,"烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫"
01DA5714    8D85 F2E04B00   lea     eax, dword ptr [ebp+4BE0F2]
01DA571A    8D8D 94E14B00   lea     ecx, dword ptr [ebp+4BE194]
01DA5720    03CB            add     ecx, ebx
01DA5722    8941 01         mov     dword ptr [ecx+1], eax
01DA5725    8D85 36E14B00   lea     eax, dword ptr [ebp+4BE136]
01DA572B    8D8D FAE04B00   lea     ecx, dword ptr [ebp+4BE0FA]
01DA5731    8901            mov     dword ptr [ecx], eax
01DA5733    B8 5E140000     mov     eax, 145E
01DA5738    8D8D FFE04B00   lea     ecx, dword ptr [ebp+4BE0FF]
01DA573E    8901            mov     dword ptr [ecx], eax
01DA5740    8D8D 94E14B00   lea     ecx, dword ptr [ebp+4BE194]
01DA5746    8D85 94F34B00   lea     eax, dword ptr [ebp+4BF394]
01DA574C    51              push    ecx
01DA574D    50              push    eax
01DA574E    E8 76FFFFFF     call    01DA56C9
01DA5753    61              popad
01DA5754    68 00000000     push    0
01DA5759    C3              retn   <========== 按教程的演示,这里应该是  prefix repne:,可以用F7跟进才对,可是我这里是retn,不知道怎么办了.
01DA575A    0000            add     byte ptr [eax], al
01DA575C    0000            add     byte ptr [eax], al
01DA575E    0000            add     byte ptr [eax], al
01DA5760    0000            add     byte ptr [eax], al
01DA5762    0000            add     byte ptr [eax], al <======下面全部是一大堆重复
………………

来到下面:
0078D552    B8 FF000000     mov     eax, 0FF
0078D557    E8 19560000     call    00792B75
0078D55C    C3              retn
0078D55D    E8 366D0100     call    007A4298   <======== 从上面的 01DA5707 返回到这一句,F8会飞掉,还是F7跟入
0078D562  ^ E9 16FEFFFF     jmp     0078D37D
0078D567    55              push    ebp
0078D568    8BEC            mov     ebp, esp
0078D56A    51              push    ecx
0078D56B    51              push    ecx
0078D56C    D9EE            fldz
0078D56E    8B45 08         mov     eax, dword ptr [ebp+8]
0078D571    DD5D F8         fstp    qword ptr [ebp-8]
0078D574    8945 F8         mov     dword ptr [ebp-8], eax
0078D577    8B45 14         mov     eax, dword ptr [ebp+14]
0078D57A    3345 0C         xor     eax, dword ptr [ebp+C]
0078D57D    25 FFFFFF7F     and     eax, 7FFFFFFF
0078D582    3345 14         xor     eax, dword ptr [ebp+14]
0078D585    8945 FC         mov     dword ptr [ebp-4], eax
0078D588    DD45 F8         fld     qword ptr [ebp-8]
0078D58B    C9              leave
0078D58C    C3              retn
0078D58D    55              push    ebp
0078D58E    8BEC            mov     ebp, esp
0078D590    51              push    ecx
0078D591    51              push    ecx
0078D592    D9EE            fldz

从上面的 call    007A4298 来到这里:
007A4298    55              push    ebp
007A4299    8BEC            mov     ebp, esp
007A429B    83EC 10         sub     esp, 10
007A429E    A1 70C18E00     mov     eax, dword ptr [8EC170]
007A42A3    8365 F8 00      and     dword ptr [ebp-8], 0
007A42A7    8365 FC 00      and     dword ptr [ebp-4], 0
007A42AB    53              push    ebx
007A42AC    57              push    edi
007A42AD    BF 4EE640BB     mov     edi, BB40E64E
007A42B2    3BC7            cmp     eax, edi
007A42B4    BB 0000FFFF     mov     ebx, FFFF0000
007A42B9    74 0D           je      short 007A42C8
007A42BB    85C3            test    ebx, eax
007A42BD    74 09           je      short 007A42C8
007A42BF    F7D0            not     eax
007A42C1    A3 74C18E00     mov     dword ptr [8EC174], eax
007A42C6    EB 60           jmp     short 007A4328
007A42C8    56              push    esi
007A42C9    8D45 F8         lea     eax, dword ptr [ebp-8]
007A42CC    50              push    eax
007A42CD    FF15 849D5C01   call    dword ptr [15C9D84]
007A42D3    8B75 FC         mov     esi, dword ptr [ebp-4]
007A42D6    3375 F8         xor     esi, dword ptr [ebp-8]
007A42D9    FF15 E89F5C01   call    dword ptr [15C9FE8]
007A42DF    33F0            xor     esi, eax
007A42E1    FF15 E49F5C01   call    dword ptr [15C9FE4]
007A42E7    33F0            xor     esi, eax
007A42E9    FF15 509E5C01   call    dword ptr [15C9E50]
007A42EF    33F0            xor     esi, eax
007A42F1    8D45 F0         lea     eax, dword ptr [ebp-10]
007A42F4    50              push    eax
007A42F5    FF15 089F5C01   call    dword ptr [15C9F08]
007A42FB    8B45 F4         mov     eax, dword ptr [ebp-C]
007A42FE    3345 F0         xor     eax, dword ptr [ebp-10]
007A4301    33F0            xor     esi, eax
007A4303    3BF7            cmp     esi, edi
007A4305    75 07           jnz     short 007A430E
007A4307    BE 4FE640BB     mov     esi, BB40E64F
007A430C    EB 0B           jmp     short 007A4319
007A430E    85F3            test    ebx, esi
007A4310    75 07           jnz     short 007A4319
007A4312    8BC6            mov     eax, esi
007A4314    C1E0 10         shl     eax, 10
007A4317    0BF0            or      esi, eax
007A4319    8935 70C18E00   mov     dword ptr [8EC170], esi
007A431F    F7D6            not     esi
007A4321    8935 74C18E00   mov     dword ptr [8EC174], esi
007A4327    5E              pop     esi
007A4328    5F              pop     edi
007A4329    5B              pop     ebx
007A432A    C9              leave
007A432B    C3              retn  <========== 这里返回上面那个Call的地方
007A432C    55              push    ebp
007A432D    8BEC            mov     ebp, esp
007A432F    51              push    ecx
007A4330    56              push    esi
007A4331    57              push    edi
007A4332    BE FFFF0000     mov     esi, 0FFFF
007A4337    56              push    esi

现在问题就是后面那个是retn ,而不是prefix repne:,教程(http://bbs.chinapyg.com/viewthread.php?tid=30956)上说要用F7单步跟进去,我这情况不知道如何下手了,找不到Stolen codes 希望高人指教。

-------------------------------------------------分隔线---------------------------------------------------

附上打包好的文件(共两个,一个EXE,一个是运行EXE时要调用的DLL)
http://u.115.com/file/t2f9990b7f

--------------------------------------------------后记------------------------------------------------------

我知道论坛不喜欢求脱壳的求破解的,但我只是求助菜鸟的问题而已,结果只有二楼的一位热心兄弟回复,有点不是滋味……
最后,我把壳脱掉了,文件dump出来有18M……没有Stolen codes,没有什么真假OEP,78D55D就是OEP了。再按“小虾”大大的教程(带壳运行)处理一下,修复IAT,就能运行了。

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 223
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
忽略异常设错了,应该不忽略
2011-1-23 19:39
0
雪    币: 172
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你确定那是oep?77XXXXX不应该是系统的领空么,另外oep应该是push ebp(汇编,vb除外)
2011-1-27 16:23
0
雪    币: 416
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你先自己測試看看吧,我不一定有空
2011-1-27 18:54
0
雪    币: 210
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
前面有两个00……我省略了
2011-1-27 21:54
0
游客
登录 | 注册 方可回帖
返回
//