bambam V0.01完美脱壳――bambam.exe主程序
下载页面: http://bbs.pediy.com/showthread.php?s=&threadid=11469
软件简介: bedrock在eXetools发布的压缩壳。
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【调试环境】:WinXP、Ollydbg、PEiD、LordPE
―――――――――――――――――――――――――――――――――
【脱壳过程】:
bambam是压缩壳,因此脱壳很简单。
PEiD的Sign:[bambam V0.01 -> bedrock]
signature = 6A 14 E8 9A 05 00 00 8B D8 53 68 ?? ?? ?? ?? E8 6C FD FF FF
ep_only = true
简单写了一下脱壳过程,给新手朋友们练习。
其实不必这样走,直接通过搜索特定命令,F4过去就行了。
―――――――――――――――――――――――――――――――――
一、脱壳的最佳时机
bambam和ASPack有点相似,在某个时机脱壳,可以不必用ImportREC来修复输入表。
00413280 6A 14 push 14
//进入Ollydbg后暂停在这
00413282 E8 9A050000 call bambam.00413821
00413287 8BD8 mov ebx,eax
00413289 53 push ebx
0041328A 68 FB384100 push bambam.004138FB
0041328F E8 6CFDFFFF call bambam.00413000
下断:BP LoadLibraryA
F9运行,中断后取消断点。Alt+F9返回
00413528 FF15 49384100 call dword ptr ds:[<&KERNEL32.LoadLibraryA>]
0041352E 8BE8 mov ebp,eax
//返回这里 运行LordPE来Dump出这个进程 ★
注意了:此时程序已经解压,输入表还是原来的,没有填充系统函数地址,正是Dump的好时机
00413530 83FD FF cmp ebp,-1
00413533 74 47 je short bambam.0041357C
00413535 8B4C24 10 mov ecx,dword ptr ss:[esp+10]
00413539 8B06 mov eax,dword ptr ds:[esi]
0041353B 8B79 10 mov edi,dword ptr ds:[ecx+10]
0041353E 8B0D 6B394100 mov ecx,dword ptr ds:[41396B]
00413544 03F9 add edi,ecx
00413546 85C0 test eax,eax
00413548 74 38 je short bambam.00413582
0041354A A9 00000080 test eax,80000000
0041354F 74 07 je short bambam.00413558
00413551 25 FFFF0000 and eax,0FFFF
00413556 EB 03 jmp short bambam.0041355B
00413558 8D43 02 lea eax,dword ptr ds:[ebx+2]
0041355B 50 push eax
0041355C 55 push ebp
0041355D FF15 59384100 call dword ptr ds:[<&KERNEL32.GetProcAddress>>
00413563 83C6 04 add esi,4
00413566 8907 mov dword ptr ds:[edi],eax
00413568 8B0D 6B394100 mov ecx,dword ptr ds:[41396B]
0041356E 83C7 04 add edi,4
00413571 8B06 mov eax,dword ptr ds:[esi]
00413573 85C0 test eax,eax
00413575 8D1C08 lea ebx,dword ptr ds:[eax+ecx]
00413578 75 D0 jnz short bambam.0041354A
0041357A EB 06 jmp short bambam.00413582
0041357C 8B0D 6B394100 mov ecx,dword ptr ds:[41396B]
00413582 8B4424 10 mov eax,dword ptr ss:[esp+10]
00413586 83C0 14 add eax,14
00413589 894424 10 mov dword ptr ss:[esp+10],eax
0041358D 0F85 7BFFFFFF jnz bambam.0041350E
//循环
00413593 8B15 FF384100 mov edx,dword ptr ds:[4138FF]
//Dump后直接F4来到这里
//[004138FF]=0000B580 记下了,这个就是输入表的RVA ★
00413599 C705 FF384100 00000>mov dword ptr ds:[4138FF],0
004135A3 8D3C11 lea edi,dword ptr ds:[ecx+edx]
004135A6 8BC8 mov ecx,eax
004135A8 2BCF sub ecx,edi
004135AA 33C0 xor eax,eax
004135AC 8BD1 mov edx,ecx
004135AE C1E9 02 shr ecx,2
004135B1 F3:AB rep stos dword ptr es:[edi]
004135B3 8BCA mov ecx,edx
004135B5 83E1 03 and ecx,3
004135B8 F3:AA rep stos byte ptr es:[edi]
004135BA 5F pop edi
004135BB 5E pop esi
004135BC 5D pop ebp
004135BD 5B pop ebx
004135BE 59 pop ecx
004135BF C3 retn
―――――――――――――――――――――――――――――――――
二、OEP
0041342E E8 BD000000 call bambam.004134F0
00413433 A1 6B394100 mov eax,dword ptr ds:[41396B]
00413438 8B48 3C mov ecx,dword ptr ds:[eax+3C]
0041343B 8B9401 C0000000 mov edx,dword ptr ds:[ecx+eax+C0]
00413442 85D2 test edx,edx
00413444 74 5A je short bambam.004134A0
004134A0 A0 74394100 mov al,byte ptr ds:[413974]
004134A5 C605 73394100 01 mov byte ptr ds:[413973],1
004134AC 84C0 test al,al
004134AE 74 36 je short bambam.004134E6
004134E6 E8 15030000 call bambam.00413800
//进入
00413800 55 push ebp
00413801 8BEC mov ebp,esp
00413803 53 push ebx
00413804 56 push esi
00413805 57 push edi
00413806 A1 FB384100 mov eax,dword ptr ds:[4138FB]
//[004138FB]=000043C9 OEP的RVA ★
0041380B 0305 6B394100 add eax,dword ptr ds:[41396B]
00413811 A3 FB384100 mov dword ptr ds:[4138FB],eax
00413816 FF25 FB384100 jmp dword ptr ds:[4138FB] ; bambam.004043C9
//飞向光明之巅 ^O^
―――――――――――――――――――――――――――――――――
三、PE修正
用LordPE修正dump.exe的OEP RVA=000043C9、输入表RVA=0000B580,保存之。
删除最后的.bedrock壳区段,重建PE优化一下。勉强可以算是“完美”脱壳吧。
―――――――――――――――――――――――――――――――――
, _/
/| _.-~/ \_ , 青春都一晌
( /~ / \~-._ |\
`\\ _/ \ ~\ ) 忍把浮名
_-~~~-.) )__/;;,. \_ //'
/'_,\ --~ \ ~~~- ,;;\___( (.-~~~-. 换了破解轻狂
`~ _( ,_..--\ ( ,;'' / ~-- /._`\
/~~//' /' `~\ ) /--.._, )_ `~
" `~" " `" /~'`\ `\\~~\
" " "~' ""
UnPacked By : fly
2005-02-26 16:00
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课