从网络上转来的,也不知道有没有用,大家有兴趣的可以试试~!~!
一、破解目标:EncryptPEV2.2004.7.27加壳的XX软件
二、破解工具:OllyDbgv1.10,ImportREC1.6Final
三、破解作者:DarkBull@email.com.cn
四、破解过程:
1.用OllyDbg载入,提示该程序为坏的或未知格式的32位执行文件,不必理会。该壳程序运行流程大致为:第一次运行时,先在系统目录内创建V22004727.EPE,然后加载该模块,初始化时通过SetWindowsHookEx设置远程系统钩子,再给Explorer.exe的Progman发送消息,将该钩子插入Explorer.exe中,如果用OD调试,该钩子会调用TerminateProcess结束OD进程,最后通过调用V22004727.EPE模块的EncryptPE_Init函数给Explorer.exe的Progman发送特定的消息,该消息被钩子函数捕获后,V22004727.EPE就创建一个新的进程,通过调用一系列调试函数来完成解压缩工作;第二次运行时,由于该钩子已被插入Explorer.exe中,所以程序自己跳过SetWindowsHookEx过程,我们就可以用OD调试了。
2.OK!第二次加载,程序停在如下处:
GraspNet.>60PUSHAD
009C00019CPUSHFD
009C000264:FF3500>PUSHDWORDPTRFS:[0]
009C0009E87A01000>CALLGraspNet.009C0188
下断点BPEncryptPE_Init,拦截后代码如下:
V2200472.>55PUSHEBP
711E39F98BECMOVEBP,ESP
711E39FB51PUSHECX
711E39FCE80100000>CALLV2200472.711E3A02;有花指令,F7步入
711E3A01EB58JMPSHORTV2200472.711E3A5B
711E3A038B442440MOVEAX,DWORDPTRSS:[ESP+40]
711E3A078945FCMOVDWORDPTRSS:[EBP-4],EAX
直到如下代码处:
711E3C2E6A01PUSH1;lParam=1
711E3C3068C81B000>PUSH1BC8;wParam=1BC8
711E3C35A10CDC1F7>MOVEAX,DWORDPTRDS:[711FDC0C]
711E3C3A8B00MOVEAX,DWORDPTRDS:[EAX]
711E3C3C50PUSHEAX;MSG=IsDebuggerPresentExEdLl(=wfs=)32EXPLORER.EXE
711E3C3DA120DE1F7>MOVEAX,DWORDPTRDS:[711FDE20]
711E3C428B00MOVEAX,DWORDPTRDS:[EAX]
711E3C4450PUSHEAX
711E3C45E8063DF4F>CALLV2200472.71127950;JMPtoUSER32.SendMessageA
711E3C4AEB0AJMPSHORTV2200472.711E3C56
711E3C4CE8FB7FFCF>CALLV2200472.711ABC4C
711E3C51E83E81FCF>CALLV2200472.711ABD94
711E3C56E8E188FCF>CALLV2200472.711AC53C;ExitProcess
该进程已完成任务,新的进程已被创建。
3.在出现EncryptPE注册窗口时,用OD附加于explorer.exe,下断HEWaitForDebugEvent,拦截后堆栈为:
0166FD28711B081C/CALLtoWaitForDebugEventfromV2200472.711B0817 |
|