- UID
- 10898
注册时间2006-4-18
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
大家好,今天给大家讲的是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 [eax], 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 [eax], 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, [eax]
方法五: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) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|