moyer 发表于 2006-5-5 13:26:12

WWPack32 1.12脱壳方法

大家好,今天给大家讲的是WWPack32 1.12脱壳方法

依照惯例,首先仍然是查壳,使用PEID查得是WWPack32 1.x -> Piotr Warezak

然后OD载入。

方法一:单步法

0040D000 >53            push    ebx      //F8
0040D001    55            push    ebp      //F8
0040D002    8BE8            mov   ebp, eax    //F8
0040D004    33DB            xor   ebx, ebx   //F8
0040D006    EB 60         jmp   short 0040D068   //F8,看看跟进到哪儿?
0040D008    0D 0A0D0A57   or      eax, 570A0D0A

0040D068    E8 00000000   call    0040D06D//到这里
0040D06D    58            pop   eax
0040D06E    2D 6D000000   sub   eax, 6D
0040D073    50            push    eax

一跟的F8,遇到回跳就F4,一直到这里

0040D28D    05 99020000   add   eax, 299
0040D292    5D            pop   ebp                              ; 0012FFF0
0040D293    5B            pop   ebx
0040D294- E9 333EFFFF   jmp   004010CC      //F8就到了OEP了
0040D299    0000            add   , al
0040D29B    40            inc   eax
(一会再讲修复问题)

方法二:ESP定律法
OD载入,F8--------看ESP
hr 0012ffc0   F9
0040D292    5D            pop   ebp                              ; 0012FFF0
0040D293    5B            pop   ebx
0040D294- E9 333EFFFF   jmp   004010CC      //停在了这里,F8就到了OEP了
0040D299    0000            add   , al
0040D29B    40            inc   eax


方法三:内存镜像法
ALT+M
Memory map, 条目 25
地址=00407000
大小=00006000 (24576.)
属主=WWPack32 00400000
区段=.rsrc
包含=资源
类型=Imag 01001002
访问=R
初始访问=RWE
F2断点,F9运行
ALT+M
Memory map, 条目 22
地址=00401000
大小=00004000 (16384.)
属主=WWPack32 00400000
区段=.text
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE
F2断点,F9运行就到了真正的入口点了

方法四:"懒人法"(我也不知道叫什么方法,呵呵)
ALT+M,看看内存
Memory map, 条目 23
地址=00405000
大小=00001000 (4096.)
属主=WWPack32 00400000
区段=.data
类型=Imag 01001002
访问=R
初始访问=RWE
运行命令:tc eip<00405000
等一会,到这里
004010CC    55            push    ebp                              ; 这里就是OEP
004010CD    8BEC            mov   ebp, esp
004010CF    83EC 44         sub   esp, 44
004010D2    56            push    esi
004010D3    FF15 E4634000   call    [<&KERNEL32.GetCommandLineA>]    ; kernel32.GetCommandLineA
004010D9    8BF0            mov   esi, eax
004010DB    8A00            mov   al,

方法五:SFX自动跟踪法(绝对懒人法)
OD载入ALT+O
选择SFC,然后选择 字节方式跟踪真正入口点(速度非常慢)
然后重新打开文件,等一会就到了

04010CC    55            push    ebp                              ; 这里就是OEP
004010CD    8BEC            mov   ebp, esp
004010CF    83EC 44         sub   esp, 44
004010D2    56            push    esi

好,现在讲讲修复问题。
用OD脱壳之后,方试式一,方试二,我们发现修复之后还是运行不了~~
那就用LP吧~没反应。。。晕。。。修复一下看看~~晕~还是运行不了~怎么办呢~~那就用LP的重建功能吧~发现是可以的~~那我们再来用重建PE试试~1和2~呵呵~还是不可以~~没办法~~这个壳就这么变态~~大家记好啦~
如果还不能运行,就把脱了壳的东东用PEditor 1.7重建程序。
                                                                                     老怪物(moyer)
页: [1]
查看完整版本: WWPack32 1.12脱壳方法