首页
社区
课程
招聘
[旧帖] [求助]在脱PECompact时遇到的不解之处 0.00雪花
发表于: 2008-1-6 01:11 2337

[旧帖] [求助]在脱PECompact时遇到的不解之处 0.00雪花

2008-1-6 01:11
2337
本人在学脱壳,在看黑鹰初级班教程之前都先自己来脱一下,在看教程的。

od载入程序后看到没有pushad pushfd等等的东西。试试用两次内存断点法!

打开内存镜像,分别在 .rsrc和.text 下断后od停在0101baa5:

0101BAA5    C602 E9        mov byte ptr ds:[edx],0E9  <=====停在这里
0101BAA8    83C2 05        add edx,5  <===单步好这里,看到edx为01001016
0101BAAB    2BCA           sub ecx,edx
0101BAAD    894A FC        mov dword ptr ds:[edx-4],ecx
0101BAB0    33C0           xor eax,eax
0101BAB2    C3             retn

当时看到edx的值就有点奇怪,自己也说不出什么原因。就ctrl+g到那里看看:

01001016  - E9 08504543    jmp 44456023
    0100101B    6F             outs dx,dword ptr es:[edi]
0100101C    6D             ins dword ptr es:[edi],dx
0100101D    70 61          jo short PECompac.01001080
0100101F    637432 00      arpl word ptr ds:[edx+esi],si
01001023  - EB D6          jmp short PECompac.01000FFB

看到jmp 44456023奇怪的跳转,F2下断,F9运行到这里。F8进去

0101BAB3    B8 97A801F1    mov eax,F101A897
0101BAB8    64:8F05 000000>pop dword ptr fs:[0]
0101BABF    83C4 04        add esp,4
0101BAC2    55             push ebp
0101BAC3    53             push ebx
0101BAC4    51             push ecx
0101BAC5    57             push edi
0101BAC6    56             push esi
0101BAC7    52             push edx
0101BAC8    8D98 D5110010  lea ebx,dword ptr ds:[eax+100011D5]
0101BACE    8B53 18        mov edx,dword ptr ds:[ebx+18]
0101BAD1    52             push edx
0101BAD2    8BE8           mov ebp,eax
0101BAD4    6A 40          push 40
0101BAD6    68 00100000    push 1000
0101BADB    FF73 04        push dword ptr ds:[ebx+4]
0101BADE    6A 00          push 0
0101BAE0    8B4B 10        mov ecx,dword ptr ds:[ebx+10]
0101BAE3    03CA           add ecx,edx
0101BAE5    8B01           mov eax,dword ptr ds:[ecx]
0101BAE7    FFD0           call eax
0101BAE9    5A             pop edx
0101BAEA    8BF8           mov edi,eax
0101BAEC    50             push eax
0101BAED    52             push edx
0101BAEE    8B33           mov esi,dword ptr ds:[ebx]
0101BAF0    8B43 20        mov eax,dword ptr ds:[ebx+20]
0101BAF3    03C2           add eax,edx
0101BAF5    8B08           mov ecx,dword ptr ds:[eax]
0101BAF7    894B 20        mov dword ptr ds:[ebx+20],ecx
0101BAFA    8B43 1C        mov eax,dword ptr ds:[ebx+1C]
0101BAFD    03C2           add eax,edx
0101BAFF    8B08           mov ecx,dword ptr ds:[eax]
0101BB01    894B 1C        mov dword ptr ds:[ebx+1C],ecx
0101BB04    03F2           add esi,edx
0101BB06    8B4B 0C        mov ecx,dword ptr ds:[ebx+C]
0101BB09    03CA           add ecx,edx
0101BB0B    8D43 1C        lea eax,dword ptr ds:[ebx+1C]
0101BB0E    50             push eax
0101BB0F    57             push edi
0101BB10    56             push esi
0101BB11    FFD1           call ecx
0101BB13    5A             pop edx
0101BB14    58             pop eax
0101BB15    0343 08        add eax,dword ptr ds:[ebx+8]
0101BB18    8BF8           mov edi,eax
0101BB1A    52             push edx
0101BB1B    8BF0           mov esi,eax
0101BB1D    8B46 FC        mov eax,dword ptr ds:[esi-4]
0101BB20    83C0 04        add eax,4
0101BB23    2BF0           sub esi,eax
0101BB25    8956 08        mov dword ptr ds:[esi+8],edx
0101BB28    8B4B 10        mov ecx,dword ptr ds:[ebx+10]
0101BB2B    894E 24        mov dword ptr ds:[esi+24],ecx
0101BB2E    8B4B 14        mov ecx,dword ptr ds:[ebx+14]
0101BB31    51             push ecx
0101BB32    894E 28        mov dword ptr ds:[esi+28],ecx
0101BB35    8B4B 0C        mov ecx,dword ptr ds:[ebx+C]
0101BB38    894E 14        mov dword ptr ds:[esi+14],ecx
0101BB3B    FFD7           call edi
0101BB3D    8985 C8120010  mov dword ptr ss:[ebp+100012C8],eax
0101BB43    8BF0           mov esi,eax
0101BB45    59             pop ecx
0101BB46    5A             pop edx
0101BB47    EB 0C          jmp short PECompac.0101BB55
0101BB49    03CA           add ecx,edx
0101BB4B    68 00800000    push 8000
0101BB50    6A 00          push 0
0101BB52    57             push edi
0101BB53    FF11           call dword ptr ds:[ecx]
0101BB55    8BC6           mov eax,esi
0101BB57    5A             pop edx
0101BB58    5E             pop esi
0101BB59    5F             pop edi
0101BB5A    59             pop ecx
0101BB5B    5B             pop ebx
0101BB5C    5D             pop ebp
0101BB5D    FFE0           jmp eax  <===一直单步到这里,eax0100739d很大的跳转

跳过去后就是oep

本人不解的是那个edx值跟oep有什么关系呢?后来看看那个edx的值01001016就是程序开头的地方啊。不过刚开始是01001016    8908           mov dword ptr ds:[eax],ecx
后来就变了那个大跳转。

有高手能指点一下原理吗?这是不是另外一种脱PECompact 2.x的方法呢??

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//