-
-
脱ASPack 2.12+Crunch/PE Heuristic双层壳
-
发表于:
2005-5-10 21:08
4993
-
脱ASPack 2.12+Crunch/PE Heuristic双层壳
【脱文标题】:ESP定律 - 脱ASPack 2.12+Crunch/PE Heuristic双层壳一锅端
【破文作者】:KuNgBiM[DFCG]
【作者邮箱】:gb_1227@163.com
【软件名称】:VBEXEObfuscator 1.0.0.272
【软件大小】:183KB
【使用平台】:Win9x/Me/NT/2000/XP
【发布公司】:http://www.joryanick.com/
【程序简介】:Jory's VB EXE Obfuscator,Obfuscator for Visual Basic Executables Protection Tool.
【调试环境】:WinXP、Ollydbg、PEiD
【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
―――――――――――――――――――――――――――――――――
【脱壳过程】:
*************************************
第一层:
ASPack 2.12 -> Alexey Solodovnikov
第二层:
Crunch/PE Heuristic -> Bit-Arts
*************************************
按照以往设置,OD载入,忽略一切异常:
004B2001 > 60
pushad //
停在这里
004B2002 E8 03000000
call VBEXEObf.004B200A //F8
一次,查看寄存器ESP值
004B2007 - E9 EB045D45
jmp 45A824F7
004B200C 55
push ebp
004B200D C3
retn
=============
寄存器==============
EAX 00000000
ECX 0012FFB0
EDX 7C92EB94 ntdll.KiFastSystemCallRet
EBX 7FFDF000
ESP 0012FFA4 //
ESP=0012FFA4
EBP 0012FFF0
ESI FFFFFFFF
EDI 7C930738 ntdll.7C930738
EIP 004B2002 VBEXEObf.004B2002
=================================
OD
命令下断 hr 0012ffa4 回车,F9运行一次004B23AF 61
popad
004B23B0 75 08
jnz short VBEXEObf.004B23BA //
断在这里,第一层壳解压完毕,F8跳!
004B23B2 B8 01000000
mov eax,1
004B23B7 C2 0C00
retn 0C
004B23BA 68 00404900
push VBEXEObf.00494000 //
跳在这里,到达第2层壳入口,继续F8一次
004B23BF C3
retn //
再次查看寄存器ESP值=============
寄存器==============
EAX 00000000
ECX 0012FFB0
EDX 7C92EB94 ntdll.KiFastSystemCallRet
EBX 7FFDF000
ESP 0012FFC0 //
ESP=0012FFC0
EBP 0012FFF0
ESI FFFFFFFF
EDI 7C930738 ntdll.7C930738
EIP 004B23BF VBEXEObf.004B23BF
=================================
取消第一层壳内存断点 hd 0012ffa4 回车,接着下 hr 0012ffc0 回车,F9运行3次,Shift+F9一次,这时程序到达第2层壳解压尾部:
004940C4 61
popad
004940C5 5D
pop ebp
004940C6 8B85 8F220000
mov eax,
dword ptr ss:[
ebp+228F]
004940CC 5D
pop ebp
004940CD - FFE0
jmp eax ; VBEXEObf.00402660 //停在这里,00402660所指向OEP,F8一次让它跳!
004940CF BE 8F220000
mov esi,228F
004940D4 03F5
add esi,
ebp
004940D6 32C9
xor cl,
cl
.................................
00402660 68 14354200
push VBEXEObf.00423514 //
跳向这里,看着程序类似于VB一样的程序入口,赶快Dump整个进程!
00402665 E8 EEFFFFFF
call VBEXEObf.00402658
0040266A 0000
add byte ptr ds:[
eax],
al
0040266C 0000
add byte ptr ds:[
eax],
al
0040266E 0000
add byte ptr ds:[
eax],
al
00402670 3000
xor byte ptr ds:[
eax],
al
00402672 0000
add byte ptr ds:[
eax],
al
00402674 58
pop eax
00402675 0000
add byte ptr ds:[
eax],
al
00402677 0040 00
add byte ptr ds:[
eax],
al
0040267A 0000
add byte ptr ds:[
eax],
al
0040267C 0C BB
or al,0BB
0040267E
DB ???
; 未知命令
0040267F 0B29
or ebp,
dword ptr ds:[
ecx]
00402681 50
push eax
00402682 7B 44
jpo short VBEXEObf.004026C8
脱壳修复:
运行ImportREC,找到“VBEXEObfuscator.exe”进程,OEP栏填上 00002660 ,自动搜索IAT,获取输入表(函数全部为真),修复抓取文件,
运行脱壳后的程序,成功,Fix Dump~~
程序为Microsoft Visual Basic 5.0 / 6.0编译
〓本文完〓==========================
Unpacked by KuNgBiM[DFCG]
2005-05-10
==========================
文章相关:
附件:VBEXEObfuscator.rar
[课程]Linux pwn 探索篇!