-
-
EasyBoot5.03脱壳+暴破
-
发表于:
2004-11-17 09:35
9037
-
【破解作者】 lelfei
【作者邮箱】 lelfei#sina.com
【使用工具】 Peid0.92,FI3.01,OllyDBG1.10,LordPE,UltraEdit,...
【破解平台】 Win2000
【软件名称】 EasyBoot 5.0.3.426 , 2004年9月22日
【下载地址】 http://cn.ezbsystems.com
【软件简介】 EasyBoot是一款集成化的中文光盘启动菜单制作工具,它可以制作光盘启动菜单、自动生成启动文件、并生成可启动ISO文件。只要通过CD-R/W刻录软件即可制作完全属于自己的启动光盘。
【软件大小】 2.40M
【加壳方式】 未知
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
一、脱壳:
观察:
用Peid和FI侦察,发现壳为“ASPack 2.12 -> Alexey Solodovnikov”,但实际并非如此。
下手:
用Fly修改的OllyDBG1.10载入程序,停在入口处:
005AB001 E>pushad <--程序入口点
005AB002 call EasyBoot.005AB00A
005AB007 jmp 45B7B4F7
005AB3A9 mov dword ptr ss:[ebp+3A8],eax
005AB3AF popad ;<--F4来到这里
005AB3B0 jnz short EasyBoot.005AB3BA
005AB3B2 mov eax,1
005AB3B7 retn 0C
005AB3BA push EasyBoot.00401428 ;可以看见伪OEP了
005AB3BF retn ;返回到 00401428 (EasyBoot.00401428)
00401428 jmp short EasyBoot.0040143A ;<--伪OEP入口
0040142A db 66 ; CHAR 'f'
0040142B db 62 ; CHAR 'b'
0040142C db 3A ; CHAR ':'
0040142D db 43 ; CHAR 'C'
0040142E db 2B ; CHAR '+'
0040142F db 2B ; CHAR '+'
00401430 db 48 ; CHAR 'H'
00401431 db 4F ; CHAR 'O'
00401432 db 4F ; CHAR 'O'
00401433 db 4B ; CHAR 'K'
00401434 nop
00401435 db E9
00401436 dd offset EasyBoot.___CPPdebugHook
0040143A mov eax,dword ptr ds:[50708B]
0040143F shl eax,2
发现伪OEP处的代码并不像我们常见的程序入口点代码,继续往下跟:
0040143A mov eax,dword ptr ds:[50708B]
0040143F shl eax,2
00401442 mov dword ptr ds:[50708F],eax
00401447 push edx
00401448 push 0 ; /pModule = NULL
0040144A call EasyBoot.00506066 ; \GetModuleHandleA
0040144F mov edx,eax
00401451 call EasyBoot.004E303C
00401456 pop edx
00401457 call EasyBoot.004E2FA0
0040145C call EasyBoot.004E307C
00401461 push 0 ; /Arg1 = 00000000
00401463 call EasyBoot.004E4690 ; \EasyBoot.004E4690
00401468 pop ecx
00401469 push EasyBoot.00507034
0040146E push 0 ; /pModule = NULL
00401470 call EasyBoot.00506066 ; \GetModuleHandleA
00401475 mov dword ptr ds:[507093],eax
0040147A push 0
0040147C jmp EasyBoot.004EE16C ;<--这里跳向真正的OEP
00401481 E>jmp EasyBoot.004E46DC
004EE16C push ebp ;<--真实的OEP,观察这里的代码
004EE16D mov ebp,esp
004EE16F add esp,-0C
004EE172 push ebx
004EE173 push esi
004EE174 push edi
004EE175 mov esi,dword ptr ss:[ebp+8]
004EE178 mov eax,dword ptr ds:[esi+10]
004EE17B and eax,1
004EE17E mov dword ptr ds:[51F1A0],eax
004EE183 call EasyBoot.004EADB4
00506FF0 1>mov dword ptr ss:[esp+4],fix_dump.00507034 ;<--恢复堆栈数据
00506FF8 jmp fix_dump.004EE16C ;<--跳到真正的OEP
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)