首页
社区
课程
招聘
[旧帖] [求助]多层壳、花指令,可是还没能完成老师的作业,请高手指点。先谢谢了! 0.00雪花
发表于: 2009-7-1 10:33 4334

[旧帖] [求助]多层壳、花指令,可是还没能完成老师的作业,请高手指点。先谢谢了! 0.00雪花

2009-7-1 10:33
4334
如果完全脱干净了,运行时会提示:"access violation at address 00000000. read of address 00000000" 如果有这个提示,那说明脱得一干二净很完美了!

程序下载  
下面开始我的脱壳步骤:

用PEID查出是“ASPack 2.x (without poly) -> Alexey Solodovnikov”


先用OD载入后
009EEE00 t>  E8 D7020000      call test.009EF0DC
009EEE05    EB 22            jmp short test.009EEE29
009EEE07    80BA 3038857F 8A cmp byte ptr ds:[edx+7F853830],8>
009EEE0E    43              inc ebx
009EEE0F    9B              wait
009EEE10    192A            sbb dword ptr ds:[edx],ebp
009EEE12    FD              std
009EEE13    FB              sti
009EEE14  ^ E1 8B            loopde short test.009EEDA1
009EEE16    CA 237B          retf 7B23

载入后SHIFT+F9就立刻跑飞。

重新载入:


009EEE00 t>  E8 D7020000      call test.009EF0DC                            //这里F7步进
009EEE05    EB 22            jmp short test.009EEE29
009EEE07    80BA 3038857F 8A cmp byte ptr ds:[edx+7F853830],8>
009EEE0E    43              inc ebx
009EEE0F    9B              wait
009EEE10    192A            sbb dword ptr ds:[edx],ebp
009EEE12    FD              std
009EEE13    FB              sti
009EEE14  ^ E1 8B            loopde short test.009EEDA1
009EEE16    CA 237B          retf 7B23

跳转后到这里:
009EF0DC    55              push ebp
009EF0DD    8BEC            mov ebp,esp
009EF0DF    83EC 10          sub esp,10
009EF0E2    53              push ebx
009EF0E3    56              push esi
009EF0E4    57              push edi
009EF0E5    EB 0E            jmp short test.009EF0F5
009EF0E7    FF25 8B4504EB    jmp dword ptr ds:[EB04458B]
009EF0ED    01FF            add edi,edi
009EF0EF    EB 02            jmp short test.009EF0F3
009EF0F1    FF25 EB02EBF2    jmp dword ptr ds:[F2EB02EB]
009EF0F7    EB 0E            jmp short test.009EF107
009EF0F9    FF25 8D40FBEB    jmp dword ptr ds:[EBFB408D]
009EF0FF    01FF            add edi,edi
009EF101    EB 02            jmp short test.009EF105
009EF103    FF25 EB02EBF2    jmp dword ptr ds:[F2EB02EB]
009EF109    EB 0E            jmp short test.009EF119
009EF10B    FF25 8945F0EB    jmp dword ptr ds:[EBF04589]
009EF111    01FF            add edi,edi
009EF113    EB 02            jmp short test.009EF117
009EF115    FF25 EB02EBF2    jmp dword ptr ds:[F2EB02EB]
009EF11B    EB 17            jmp short test.009EF134
009EF11D    FF25 EB01C38B    jmp dword ptr ds:[8BC301EB]
009EF123    45              inc ebp
009EF124    F03C0 30      lock add eax,30                  ; 不允许锁定前缀
009EF128    8945 F4          mov dword ptr ss:[ebp-C],eax
009EF12B    EB 01            jmp short test.009EF12E
009EF12D    FFEB            jmp far ebx                      ; 非法使用寄存器

在这里直接用OD插件的去除花指令,选OBSIDIUM,成功去除29个花指令!(有关花指令的去除,感谢nick的提醒)去除后的显示:

009EF0DC    55              push ebp
009EF0DD    8BEC            mov ebp,esp
009EF0DF    83EC 10          sub esp,10
009EF0E2    53              push ebx
009EF0E3    56              push esi
009EF0E4    57              push edi
009EF0E5    EB 0E            jmp short test.009EF0F5
009EF0E7    FF25 8B450490    jmp dword ptr ds:[9004458B]
009EF0ED    90              nop
009EF0EE    90              nop
009EF0EF    90              nop
009EF0F0    90              nop
009EF0F1    90              nop
009EF0F2    90              nop
009EF0F3    90              nop
009EF0F4    90              nop
009EF0F5    90              nop
009EF0F6    90              nop
009EF0F7    EB 0E            jmp short test.009EF107
009EF0F9    FF25 8D40FB90    jmp dword ptr ds:[90FB408D]
009EF0FF    90              nop
009EF100    90              nop
009EF101    90              nop
009EF102    90              nop
009EF103    90              nop
009EF104    90              nop
009EF105    90              nop
009EF106    90              nop
009EF107    90              nop
009EF108    90              nop
009EF109    EB 0E            jmp short test.009EF119
009EF10B    FF25 8945F090    jmp dword ptr ds:[90F04589]
009EF111    90              nop
009EF112    90              nop
009EF113    90              nop
009EF114    90              nop
009EF115    90              nop
009EF116    90              nop
009EF117    90              nop
009EF118    90              nop
009EF119    90              nop
009EF11A    90              nop
009EF11B    EB 17            jmp short test.009EF134
009EF11D    FF25 9090908B    jmp dword ptr ds:[8B909090]
009EF123    45              inc ebp
009EF124    F03C0 30      lock add eax,30                  ; 不允许锁定前缀

花指令没有清除干净,EB 0E FF 25、FF 25之类的都可以NOP掉,印象中还有EB 17 FF 25之类的,记得不是很清楚了(nick的提醒,谢谢啊)

NOP掉后的结果:


009EF0DC    55              push ebp
009EF0DD    8BEC            mov ebp,esp
009EF0DF    83EC 10          sub esp,10
009EF0E2    53              push ebx
009EF0E3    56              push esi
009EF0E4    57              push edi
009EF0E5    90              nop
009EF0E6    90              nop
009EF0E7    90              nop
009EF0E8    90              nop
009EF0E9    90              nop
009EF0EA    90              nop
009EF0EB    90              nop
009EF0EC    90              nop
009EF0ED    90              nop
009EF0EE    90              nop
009EF0EF    90              nop
009EF0F0    90              nop
009EF0F1    90              nop
009EF0F2    90              nop
009EF0F3    90              nop
009EF0F4    90              nop
009EF0F5    90              nop
009EF0F6    90              nop
009EF0F7    90              nop
009EF0F8    90              nop
009EF0F9    90              nop
009EF0FA    90              nop
009EF0FB    90              nop
009EF0FC    90              nop
009EF0FD    90              nop
009EF0FE    90              nop
009EF0FF    90              nop
009EF100    90              nop
009EF101    90              nop
009EF102    90              nop
009EF103    90              nop
009EF104    90              nop
009EF105    90              nop
009EF106    90              nop
009EF107    90              nop
009EF108    90              nop
009EF109    90              nop
009EF10A    90              nop
009EF10B    90              nop
009EF10C    90              nop
009EF10D    90              nop
009EF10E    90              nop
009EF10F    90              nop
009EF110    90              nop
009EF111    90              nop
009EF112    90              nop
009EF113    90              nop
009EF114    90              nop
009EF115    90              nop
009EF116    90              nop
009EF117    90              nop
009EF118    90              nop
009EF119    90              nop
009EF11A    90              nop
009EF11B    90              nop
009EF11C    90              nop
009EF11D    90              nop
009EF11E    90              nop
009EF11F    90              nop
009EF120    90              nop
009EF121    90              nop
009EF122    90              nop
009EF123    45              inc ebp
009EF124    F03C0 30      lock add eax,30                  ; 不允许锁定前缀                ;这里单步后就有很大的跳转了,直接跳到7C92E480
009EF128    8945 F4          mov dword ptr ss:[ebp-C],eax
009EF12B    90              nop
009EF12C    90              nop

跳转后到这里:7C92E480    8B1C24          mov ebx,dword ptr ss:[esp]
7C92E483    51              push ecx
7C92E484    53              push ebx
7C92E485    E8 FDBF0100      call ntdll.7C94A487
7C92E48A    0AC0            or al,al
7C92E48C    74 0C            je short ntdll.7C92E49A
7C92E48E    5B              pop ebx
7C92E48F    59              pop ecx
7C92E490    6A 00            push 0
7C92E492    51              push ecx
7C92E493    E8 C6EBFFFF      call ntdll.ZwContinue
7C92E498    EB 0B            jmp short ntdll.7C92E4A5

这么大的跳转,以为是OEP了(不知是否真的),就直接用OLLYDUMP脱掉,另存的文件是不能运行的,用PEID查后结果是:不是有效的PE文件。

请问要如何处理?请高手指点啊!!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用LORDPE ——修正映像大小,完整转存dumped.exe。
然后IMPORTREC,输入OEP为628C,自动查找IAT时,说OEP入口错误。

是不是我的OEP没找对?要怎么找对这个OEP呢?
2009-7-1 10:42
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
请高手指点啊!!!
2009-7-1 11:20
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
如果不去除花指令的话,可以脱出来成另一个壳UPX 0.80 - 1.24 DLL -> Markus & Laszlo。但就是不能脱干净掉。。。
2009-7-1 12:53
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
先用OD载入后
009EEE00 t>  E8 D7020000      call test.009EF0DC
009EEE05    EB 22            jmp short test.009EEE29
009EEE07    80BA 3038857F 8A cmp byte ptr ds:[edx+7F853830],8>
009EEE0E    43              inc ebx
009EEE0F    9B              wait
009EEE10    192A            sbb dword ptr ds:[edx],ebp
009EEE12    FD              std
009EEE13    FB              sti
009EEE14  ^ E1 8B            loopde short test.009EEDA1
009EEE16    CA 237B          retf 7B23

载入后SHIFT+F9就立刻跑飞。
手工脱吧。


009EEE00 t>  E8 D7020000      call test.009EF0DC               
;F7步入后

009EF0DC    55              push ebp
009EF0DD    8BEC            mov ebp,esp
009EF0DF    83EC 10          sub esp,10
009EF0E2    53              push ebx
009EF0E3    56              push esi
009EF0E4    57              push edi
009EF0E5    EB 0E            jmp short test.009EF0F5                  ;这里步过后跑到009EF0E5

009EF0F5  ^\EB F2            jmp short test.009EF0E9            ;下断F4
009EF0F7    EB 0E            jmp short test.009EF107              ;这里F8步过

009EF107  ^\EB F2            jmp short test.009EF0FB            ;下断F4
009EF109    EB 0E            jmp short test.009EF119            ;F8步过

009EF119  ^\EB F2            jmp short test.009EF10D            ;下断F4
009EF11B    EB 17            jmp short test.009EF134              ;F8步过

009EF134  ^\EB E9            jmp short test.009EF11F                ;下断F4
009EF136    8B45 F4          mov eax,dword ptr ss:[ebp-C]       ;一直F8步过下去
009EF139    8378 18 00      cmp dword ptr ds:[eax+18],0
009EF13D    75 35            jnz short test.009EF174
009EF13F    8B45 F4          mov eax,dword ptr ss:[ebp-C]
009EF142    8B4D F0          mov ecx,dword ptr ss:[ebp-10]
009EF145    2B48 08          sub ecx,dword ptr ds:[eax+8]
009EF148    8B45 F4          mov eax,dword ptr ss:[ebp-C]
009EF14B    0348 04          add ecx,dword ptr ds:[eax+4]
009EF14E    8B45 F4          mov eax,dword ptr ss:[ebp-C]
009EF151    8948 04          mov dword ptr ds:[eax+4],ecx
009EF154    6A 01            push 1
009EF156    FF75 F4          push dword ptr ss:[ebp-C]
009EF159    FF75 F0          push dword ptr ss:[ebp-10]
009EF15C    E8 EF010000      call test.009EF350                            ;来到这里,F7步进
009EF161    8B45 F4          mov eax,dword ptr ss:[ebp-C]
009EF164    C740 18 01000000 mov dword ptr ds:[eax+18],1
009EF16B    FF75 F0          push dword ptr ss:[ebp-10]

009EF350    55              push ebp                                                        ;一直F8单步
009EF351    8BEC            mov ebp,esp
009EF353    81EC 10010000    sub esp,110
009EF359    8B45 08          mov eax,dword ptr ss:[ebp+8]
009EF35C    8B88 80090000    mov ecx,dword ptr ds:[eax+980]
009EF362    85C9            test ecx,ecx
009EF364    75 11            jnz short test.009EF377                                  ;单步后跳到009EF377
009EF366    8B88 B4090000    mov ecx,dword ptr ds:[eax+9B4]
009EF36C    8B80 B8090000    mov eax,dword ptr ds:[eax+9B8]
009EF372    894D FC          mov dword ptr ss:[ebp-4],ecx
009EF375    EB 0F            jmp short test.009EF386
009EF377    |8D8401 8C090000  lea eax,dword ptr ds:[ecx+eax+98>            ;来到这里了,继续F8步过
009EF37E    |8B08            mov ecx,dword ptr ds:[eax]
009EF380    8B40 04          mov eax,dword ptr ds:[eax+4]
009EF383    894D FC          mov dword ptr ss:[ebp-4],ecx
009EF386    53              push ebx
009EF387    56              push esi
009EF388    57              push edi
009EF389    8B7D 0C          mov edi,dword ptr ss:[ebp+C]
009EF38C    8945 F8          mov dword ptr ss:[ebp-8],eax
009EF38F    8B77 24          mov esi,dword ptr ds:[edi+24]
009EF392    8B47 28          mov eax,dword ptr ds:[edi+28]
009EF395    03F7            add esi,edi
009EF397    03C6            add eax,esi
009EF399    3BF0            cmp esi,eax
009EF39B    8945 F0          mov dword ptr ss:[ebp-10],eax
009EF39E    73 61            jnb short test.009EF401                              ;继续
009EF3A0    56              push esi
009EF3A1    FF55 FC          call dword ptr ss:[ebp-4]
009EF3A4    85C0            test eax,eax
009EF3A6    8945 F4          mov dword ptr ss:[ebp-C],eax
009EF3A9    8975 0C          mov dword ptr ss:[ebp+C],esi
009EF3AC    74 7C            je short test.009EF42A
009EF3AE    803E 00          cmp byte ptr ds:[esi],0
009EF3B1    74 03            je short test.009EF3B6
009EF3B3    46              inc esi
009EF3B4  ^ EB F8            jmp short test.009EF3AE        ;下断F4
009EF3B6    46              inc esi
009EF3B7    8B1E            mov ebx,dword ptr ds:[esi]
009EF3B9    85DB            test ebx,ebx
009EF3BB    74 3C            je short test.009EF3F9
009EF3BD    83C6 04          add esi,4
009EF3C0    F7C3 00000080    test ebx,80000000
009EF3C6    8975 08          mov dword ptr ss:[ebp+8],esi
009EF3C9    74 0A            je short test.009EF3D5            ;下跳到009EF3D5
009EF3CB    8B06            mov eax,dword ptr ds:[esi]
009EF3CD    83C6 04          add esi,4
009EF3D0    8945 08          mov dword ptr ss:[ebp+8],eax

009EF3D5    803E 00          cmp byte ptr ds:[esi],0
009EF3D8    74 03            je short test.009EF3DD
009EF3DA    46              inc esi
009EF3DB  ^ EB F8            jmp short test.009EF3D5          ;下断F4
009EF3DD    46              inc esi
009EF3DE    FF75 08          push dword ptr ss:[ebp+8]
009EF3E1    FF75 F4          push dword ptr ss:[ebp-C]
009EF3E4    FF55 F8          call dword ptr ss:[ebp-8]
009EF3E7    85C0            test eax,eax
009EF3E9    74 76            je short test.009EF461               
009EF3EB    8B4F 04          mov ecx,dword ptr ds:[edi+4]
009EF3EE    81E3 FFFFFF7F    and ebx,7FFFFFFF
009EF3F4    89040B          mov dword ptr ds:[ebx+ecx],eax
009EF3F7  ^ EB BE            jmp short test.009EF3B7                  ;下断F4
009EF3F9    83C6 04          add esi,4
009EF3FC    3B75 F0          cmp esi,dword ptr ss:[ebp-10]
009EF3FF  ^ 72 9F            jb short test.009EF3A0
009EF401    8B57 2C          mov edx,dword ptr ds:[edi+2C]
009EF404    8B77 30          mov esi,dword ptr ds:[edi+30]
009EF407    03D7            add edx,edi
009EF409    03F2            add esi,edx
009EF40B    3BD6            cmp edx,esi
009EF40D    0F83 B1000000    jnb test.009EF4C4
009EF413    8B4F 04          mov ecx,dword ptr ds:[edi+4]
009EF416    8BC1            mov eax,ecx
009EF418    0302            add eax,dword ptr ds:[edx]
009EF41A    807D 10 00      cmp byte ptr ss:[ebp+10],0
009EF41E    75 03            jnz short test.009EF423
009EF420    2B4F 20          sub ecx,dword ptr ds:[edi+20]
009EF423    0108            add dword ptr ds:[eax],ecx
009EF425    83C2 04          add edx,4
009EF428  ^ EB E1            jmp short test.009EF40B            ;这里不能下断,否则就跑飞。请问怎么办??

009EF428  ^ EB E1            jmp short test.009EF40B    ;这里跑飞后,可以用断点F2切换,然后按F9运行,看F9运行几次后跑飞,我测试后是16次跑飞,所以在临跑飞前最后一次F9的时候,F8步过,就可以跳过了。

009EF40B    3BD6            cmp edx,esi                      ; test.009EEF17              ;这个就是跳过来的地址了,这种跳法是看天草老师的视频后学会的。不过不知道到这里是不是已经脱掉一层了?不过OllyDump后PEID还是ASPack 2.x (without poly) -> Alexey Solodovnikov,继续研究

009EF40B    3BD6            cmp edx,esi                      ; test.009EEF17
009EF40D    0F83 B1000000    jnb test.009EF4C4                  ;步入后跳到0009EF4C4

009EF4C4    5F              pop edi                          ; ntdll.7C99E228
009EF4C5    5E              pop esi
009EF4C6    5B              pop ebx
009EF4C7    C9              leave
009EF4C8    C2 0C00          retn 0C                   ;这里返回

返回后到这里:009EF161    8B45 F4          mov eax,dword ptr ss:[ebp-C]    ; test.009EEE30
009EF164    C740 18 01000000 mov dword ptr ds:[eax+18],1
009EF16B    FF75 F0          push dword ptr ss:[ebp-10]
009EF16E    E8 FF000000      call test.009EF272                  ;步进F7后跳转

009EF272    55              push ebp
009EF273    8BEC            mov ebp,esp
009EF275    51              push ecx
009EF276    51              push ecx
009EF277    53              push ebx
009EF278    56              push esi
009EF279    57              push edi
009EF27A    8B7D 08          mov edi,dword ptr ss:[ebp+8]
009EF27D    8BB7 68090000    mov esi,dword ptr ds:[edi+968]
009EF283    03F7            add esi,edi
009EF285    8B46 04          mov eax,dword ptr ds:[esi+4]
009EF288    2B46 08          sub eax,dword ptr ds:[esi+8]
009EF28B    8D8438 00100000  lea eax,dword ptr ds:[eax+edi+10>
009EF292    8945 F8          mov dword ptr ss:[ebp-8],eax
009EF295    8B87 74090000    mov eax,dword ptr ds:[edi+974]
009EF29B    8945 FC          mov dword ptr ss:[ebp-4],eax
009EF29E    E8 27FEFFFF      call test.009EF0CA                ;一直F8到这里,F4下断后继续
009EF2A3    8945 08          mov dword ptr ss:[ebp+8],eax
009EF2A6    8987 70090000    mov dword ptr ds:[edi+970],eax
009EF2AC    8B45 FC          mov eax,dword ptr ss:[ebp-4]
009EF2AF    6A 04            push 4
009EF2B1    99              cdq
009EF2B2    59              pop ecx
009EF2B3    33DB            xor ebx,ebx
009EF2B5    F7F9            idiv ecx
009EF2B7    85C0            test eax,eax
009EF2B9    7E 40            jle short test.009EF2FB

009EF2BB    8B4D F8          mov ecx,dword ptr ss:[ebp-8]
009EF2BE    8945 FC          mov dword ptr ss:[ebp-4],eax
009EF2C1    8B55 08          mov edx,dword ptr ss:[ebp+8]
009EF2C4    8B01            mov eax,dword ptr ds:[ecx]
009EF2C6    89049A          mov dword ptr ds:[edx+ebx*4],eax
009EF2C9    8B87 28090000    mov eax,dword ptr ds:[edi+928]
009EF2CF    3101            xor dword ptr ds:[ecx],eax
009EF2D1    8B01            mov eax,dword ptr ds:[ecx]
009EF2D3    33849F 2C090000  xor eax,dword ptr ds:[edi+ebx*4+>
009EF2DA    8D949F 2C090000  lea edx,dword ptr ds:[edi+ebx*4+>
009EF2E1    8901            mov dword ptr ds:[ecx],eax
009EF2E3    8B45 08          mov eax,dword ptr ss:[ebp+8]
009EF2E6    8B0498          mov eax,dword ptr ds:[eax+ebx*4]
009EF2E9    43              inc ebx
009EF2EA    83FB 0F          cmp ebx,0F
009EF2ED    8902            mov dword ptr ds:[edx],eax
009EF2EF    75 02            jnz short test.009EF2F3

009EF2F1    33DB            xor ebx,ebx
009EF2F3    83C1 04          add ecx,4
009EF2F6    FF4D FC          dec dword ptr ss:[ebp-4]
009EF2F9  ^ 75 C6            jnz short test.009EF2C1              ;F4下断
009EF2FB    0336            add esi,dword ptr ds:[esi]
009EF2FD    6A 04            push 4
009EF2FF    8B4E 3C          mov ecx,dword ptr ds:[esi+3C]
009EF302    8B46 40          mov eax,dword ptr ds:[esi+40]
009EF305    03CE            add ecx,esi
009EF307    5E              pop esi
009EF308    99              cdq
009EF309    F7FE            idiv esi
009EF30B    85C0            test eax,eax
009EF30D    7E 36            jle short test.009EF345
009EF30F    8945 FC          mov dword ptr ss:[ebp-4],eax
009EF312    8B45 08          mov eax,dword ptr ss:[ebp+8]
009EF315    8DB49F 2C090000  lea esi,dword ptr ds:[edi+ebx*4+>
009EF31C    8D1498          lea edx,dword ptr ds:[eax+ebx*4]
009EF31F    8B01            mov eax,dword ptr ds:[ecx]
009EF321    8902            mov dword ptr ds:[edx],eax
009EF323    8B87 28090000    mov eax,dword ptr ds:[edi+928]
009EF329    3101            xor dword ptr ds:[ecx],eax
009EF32B    8B01            mov eax,dword ptr ds:[ecx]
009EF32D    3306            xor eax,dword ptr ds:[esi]
009EF32F    43              inc ebx
009EF330    83FB 0F          cmp ebx,0F
009EF333    8901            mov dword ptr ds:[ecx],eax
009EF335    8B02            mov eax,dword ptr ds:[edx]
009EF337    8906            mov dword ptr ds:[esi],eax
009EF339    75 02            jnz short test.009EF33D
009EF33B    33DB            xor ebx,ebx
009EF33D    83C1 04          add ecx,4
009EF340    FF4D FC          dec dword ptr ss:[ebp-4]
009EF343  ^ 75 CD            jnz short test.009EF312                ;这里下断F4
009EF345    8B45 08          mov eax,dword ptr ss:[ebp+8]
009EF348    5F              pop edi
009EF349    5E              pop esi
009EF34A    8958 3C          mov dword ptr ds:[eax+3C],ebx
009EF34D    5B              pop ebx
009EF34E    C9              leave
009EF34F    C3              retn                                    ;这里返回

返回后到了这里:
009EF173    59              pop ecx                          ; 012E0000
009EF174    EB 0E            jmp short test.009EF184                                        ;这里F8步入到009E184

009EF184  ^\EB F2            jmp short test.009EF178                        ;下断F4跳过
009EF186    EB 10            jmp short test.009EF198                         ;F8步过

009EF198  ^\EB F0            jmp short test.009EF18A                    ;F4下断
009EF19A    8B45 F0          mov eax,dword ptr ss:[ebp-10]
009EF19D    8B4D F0          mov ecx,dword ptr ss:[ebp-10]
009EF1A0    0388 68090000    add ecx,dword ptr ds:[eax+968]
009EF1A6    894D F4          mov dword ptr ss:[ebp-C],ecx
009EF1A9    8B45 F4          mov eax,dword ptr ss:[ebp-C]
009EF1AC    8378 18 00      cmp dword ptr ds:[eax+18],0
009EF1B0    75 14            jnz short test.009EF1C6
009EF1B2    8B45 F4          mov eax,dword ptr ss:[ebp-C]
009EF1B5    8B4D F0          mov ecx,dword ptr ss:[ebp-10]
009EF1B8    2B48 08          sub ecx,dword ptr ds:[eax+8]
009EF1BB    8B45 F4          mov eax,dword ptr ss:[ebp-C]
009EF1BE    0348 04          add ecx,dword ptr ds:[eax+4]
009EF1C1    894D F8          mov dword ptr ss:[ebp-8],ecx
009EF1C4    EB 09            jmp short test.009EF1CF                    ;这里继续F8

009EF1CF    8B45 F4          mov eax,dword ptr ss:[ebp-C]    ; test.009EFC6D
009EF1D2    8B4D F8          mov ecx,dword ptr ss:[ebp-8]
009EF1D5    0348 0C          add ecx,dword ptr ds:[eax+C]
009EF1D8    894D FC          mov dword ptr ss:[ebp-4],ecx
009EF1DB    8B45 F4          mov eax,dword ptr ss:[ebp-C]
009EF1DE    8378 18 E7      cmp dword ptr ds:[eax+18],-19
009EF1E2    75 09            jnz short test.009EF1ED                    ;这里F8步入到009EF1ED
009EF1E4    FF75 FC          push dword ptr ss:[ebp-4]
009EF1E7    E8 A8FEFFFF      call test.009EF094

009EF1ED    8B45 F4          mov eax,dword ptr ss:[ebp-C]    ; test.009EFC6D
009EF1F0    8378 18 FF      cmp dword ptr ds:[eax+18],-1
009EF1F4    74 2C            je short test.009EF222
009EF1F6    EB 11            jmp short test.009EF209                          ;这里F8步入到009EF209

009EF209  ^\EB EF            jmp short test.009EF1FA                ;这里F4下断
009EF20B    EB 0E            jmp short test.009EF21B                  ;继续F8步入到009EF21B

009EF21B  ^\EB F2            jmp short test.009EF20F                    ;这里F4下断
009EF21D    8B45 FC          mov eax,dword ptr ss:[ebp-4]
009EF220    EB 4B            jmp short test.009EF26D                        ;这里F8步入

009EF26D    5F              pop edi                          ; ntdll.7C99E228                    ;步入后到这里
009EF26E    5E              pop esi
009EF26F    5B              pop ebx
009EF270    C9              leave
009EF271    C3              retn                    ;返回

返回后:
009EF094    /EB 11            jmp short test.009EF0A7                  ;这里F8步入009EF096    |FF25 FF353CEF    jmp dword ptr ds:[EF3C35FF]

009EF0A7  ^\EB EF            jmp short test.009EF098                  ;这里F4下断009EF0A9    EB 0C            jmp short test.009EF0B7                      ;F8步入后跳转

009EF0B7  ^\EB F4            jmp short test.009EF0AD            ;F4下断
009EF0B9    EB 0C            jmp short test.009EF0C7                ;F8步入后跳转

跳转后这里又有问题出现,基本和刚才我在4楼讲的情况一样,
009EF0C7  ^\EB F4            jmp short test.009EF0BD              ;这里不能跑,一跑马上飞,这次比较特殊,F9一次就跑飞,所以不用F9了,直接F8进入009EF0BD

F8步入后:


009EF0BD    C3              retn                                      ;这里F8步入后,就是一个很大跳转了!
009EF0BE    EB 01            jmp short test.009EF0C1
009EF0C0    FFEB            jmp far ebx                      ; 非法使用寄存器

看到吗,直接跳到 009E628C 这里来了。应该到了OEP了吧。
009E628C    55              push ebp
009E628D    8BEC            mov ebp,esp
009E628F    83EC 2C          sub esp,2C
009E6292    53              push ebx
009E6293    56              push esi
009E6294    57              push edi

其实我现在最困惑的就是这里,这么大的跳转,想必是可以直接脱了吧。用OLLYDUMP脱后,用PEID来查,显示UPX 0.80 - 1.24 DLL -> Markus & Laszlo

看来是多层壳啦,下面要开始UPX 0.80 - 1.24 DLL -> Markus & Laszlo的脱壳步聚了。如果这里有哪些没讲清楚或不对的,希望大家指正,一起进步!

这里发现有个问题,就是脱壳后保存的文件名是test2.exe(第一次是test1.exe),这两个文件运行时都提示不是WIN32的应用程序,请问这个要怎么修复呢

但如果我不用OLLYDUMP来脱壳,用LORDPE ——修正映像大小,完整转存dumped.exe。

然后IMPORTREC,输入OEP为628C,自动查找IAT时,说OEP入口错误。


但是不输入OEP地址,按默认的地址,然后自动查找IAT时,即提示有找到,然后获取输入表,输入表函数有效均为是,直接修复转存文件。

试运行dumped_.exe程序,这时没提示说什么不是WIN32的应用程序了,用PIED查,是现在的壳是UPX 0.80 - 1.24 DLL -> Markus & Laszlo了。

虽然到这里,ASPACK看似已经脱了,但在测试的时候还是发现有问题,具体问题请大家下载后,在脱的时候,如果最后没有出现最上面提示的信息,就是还有问题。
2009-7-1 13:22
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
其实我的第一个思路应该是错的,去除花指令再脱的方法是方便的,但大跳转后是否就是OEP了,如果是,用PORDPE来DUMP后,IMP里面的地址却显示无效OEP。是哪里出问题了呢?
2009-7-1 13:28
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
请高手指点迷律好吗
2009-7-1 14:44
0
雪    币: 264
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
没有解压密码???
2009-7-2 17:37
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你那软件的压缩文件加密了,密码多少?
2009-7-2 21:13
0
游客
登录 | 注册 方可回帖
返回
//