声明:
1.只为纪录自己成长历程,高手勿喷
2.您的热心是新手持续发帖的动力
3.可能有些朋友对这个脱壳过城中的一些操作不太明白,其实我也不太明白,但是这就是一种方法,就像数学公式,记下来,等到以后渐渐深入了自然而然就明白了。
1.载入PEID
ACProtect v1.35 -> risco software Inc. & Anticrack Soft
2.载入OD,需要注意的是,异常选项除了[内存访问异常]外其他全部勾选上,然后shift+F9运行至最后一次异常,是1次之后。第二次程序就跑飞了
[Asm] 纯文本查看 复制代码 00436000 > 60 pushad ; //入口
00436001 7C 03 jl short QQ个性签.00436006
00436003 7D 01 jge short QQ个性签.00436006
00436005 71 0B jno short QQ个性签.00436012
00436007 C2 66C1 retn 0xC166
0043600A D29E FC4566D3 rcr byte ptr ds:[esi-0x2C99BA04],>
00436010 D27403 75 sal byte ptr ds:[ebx+eax+0x75],cl
00436014 0177 66 add dword ptr ds:[edi+0x66],esi
3.落脚点,落脚后右键点堆栈窗口SE句柄---数据窗口跟随---数据窗口第一行下内存访问断点然后shift+F9
[Asm] 纯文本查看 复制代码 00447B1F CD 01 int 0x1 ; //落脚点
00447B21 40 inc eax
00447B22 40 inc eax
00447B23 0BC0 or eax,eax
00447B25 75 05 jnz short QQ个性签.00447B2C
00447B27 90 nop
00447B28 90 nop
[Asm] 纯文本查看 复制代码 0012FF44 00447B03 SE处理程序 //堆栈窗口
[Asm] 纯文本查看 复制代码 00447B03 0C245C8B //数据窗口第一行
4.落脚点,在落脚点下F2断点,然后shift+F9
[Asm] 纯文本查看 复制代码
00447B03 8B5C24 0C mov ebx,dword ptr ss:[esp+0xC] ; //落脚点
00447B07 8383 B8000000 0>add dword ptr ds:[ebx+0xB8],0x2
00447B0E 33C0 xor eax,eax
00447B10 C3 retn
00447B11 64:67:FF36 0000 push dword ptr fs:[0]
00447B17 64:67:8926 0000 mov dword ptr fs:[0],esp
5.落脚点,继续在这里下F2断点,然后shift+F9运行
[Asm] 纯文本查看 复制代码 00447B53 8B048E mov eax,dword ptr ds:[esi+ecx*4] ; //落脚点
00447B56 8B5C8E 04 mov ebx,dword ptr ds:[esi+ecx*4+0>
00447B5A 2BC3 sub eax,ebx
00447B5C C1C0 07 rol eax,0x7
00447B5F 33C2 xor eax,edx
00447B61 81C2 4B3DF129 add edx,0x29F13D4B
6.落脚点,先清除刚刚下的2个F2断点和1个内存访问断点,然后在最近的retn处F4
[Asm] 纯文本查看 复制代码 00447B67 89048E mov dword ptr ds:[esi+ecx*4],eax ; //落脚点
00447B6A 49 dec ecx
00447B6B ^ EB E1 jmp short QQ个性签.00447B4E
00447B6D 61 popad
00447B6E 61 popad
00447B6F C3 retn ; //F4
00447B70 0000 add byte ptr ds:[eax],al
7.接下来到显示内存窗口,在00401000处下F2断点然后shift+F9运行,这个时候加壳程序就跑起来了,弹出那个ACProtect的提示窗,不用管,直接点确定
[Asm] 纯文本查看 复制代码 Memory map, 条目 14
地址=00401000
大小=0002B000 (176128.)
属主=QQ个性签 00400000
区段=.text
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE
8.直接来到OEP,可以脱壳了,使用LoadPE+ImportREC脱壳即可
[Asm] 纯文本查看 复制代码 004012D4 68 54474000 push QQ个性签.00404754 ; //OEP
004012D9 E8 F0FFFFFF call QQ个性签.004012CE ; jmp 到 msvbvm60.ThunRTMain
004012DE 0000 add byte ptr ds:[eax],al
004012E0 0000 add byte ptr ds:[eax],al
004012E2 0000 add byte ptr ds:[eax],al
004012E4 3000 xor byte ptr ds:[eax],al
004012E6 0000 add byte ptr ds:[eax],al
004012E8 48 dec eax ; kernel32.BaseThreadInitThunk
004012E9 0000 add byte ptr ds:[eax],al
9.运行查壳
运行OK,查壳:Microsoft Visual Basic v5.0/v6.0
|