【脱壳一般流程】
查壳(PEID、FI、PE-SCAN)--->寻找OEP(OD)--->脱壳/Dump(LordPE、PeDumper、OD自带的脱壳插件、PETools)--->修复(Import REConstructor)
【OEP入口的特征】
Microsoft Visual C++ 6.0
push ebp
mov ebp, esp
push -1
push 004C0618
push 004736F8
mov eax, dword ptr fs:[0]
push eax
mov dword ptr fs:[0], esp
sub esp, 58
push ebx
push esi
push edi
mov [local.6], esp
Microsoft Visual Basic 5.0 / 6.0
JMP DWORD PTR DS[<&MSVBVM60.#100>]
PUSH Dumped.00407C14
CALL <JMP.&MSVBVM60.#100>
ADD BYTE PTR DS:[EAX],AL
ADD BYTE PTR DS:[EAX],AL
ADD BYTE PTR DS:[EAX],AL
XOR BYTE PTR DS:[EAX],AL
VB还有一种
push Dumped.0040D4D0
call <jmp.&msvbvm60.ThunRTMain>
add byte ptr ds:[eax],al
add byte ptr ds:[eax],al
add byte ptr ds:[eax],al
xor byte ptr ds:[eax],al
add byte ptr ds:[eax],al
Borland C++
JMP SHORT BCLOCK.0040164E
DB 66 ; CHAR 'f'
DB 62 ; CHAR 'b'
DB 3A ; CHAR ':'
DB 43 ; CHAR 'C'
DB 2B ; CHAR '+'
DB 2B ; CHAR '+'
DB 48 ; CHAR 'H'
DB 4F ; CHAR 'O'
DB 4F ; CHAR 'O'
DB 4B ; CHAR 'K'
NOP
DB E9
DD OFFSET BCLOCK.___CPPdebugHook
MOV EAX,DWORD PTR DS:[4EE08B]
SHL EAX,2
MOV DWORD PTR DS:[4EE08F],EAX
PUSH EDX
PUSH 0 ; /pModule = NULL
CALL <JMP.&KERNEL32.GetModuleHandleA> ; /GetModuleHandleA
MOV EDX,EAX
Borland Delphi 6.0 - 7.0
PUSH EBP
MOV EBP,ESP
ADD ESP,-14
PUSH EBX
PUSH ESI
PUSH EDI
XOR EAX,EAX
MOV DWORD PTR SS:[EBP-14],EAX
MOV EAX,Dumped.00509720
CALL Dumped.0040694C
易语言入口
call Dumped.0040100B
push eax
call <jmp.&KERNEL32.ExitProcess>
push ebp
mov ebp,esp
add esp,-110
jmp Dumped.0040109C
imul esi,dword ptr ds:[edx+6E],6C
outs dx,byte ptr es:[edi]
也是有令一种形式
Microsoft Visual C++ 6.0 [Overlay]的E语言
PUSH EBP
MOV EBP,ESP
PUSH -1
PUSH Dumped.004062F0
PUSH Dumped.00404CA4 ; SE 处理程序安装
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
MASM32 / TASM32
push 0 ; /pModule = NULL
call <jmp.&kernel32.GetModuleHandleA> ; /GetModuleHandleA
mov dword ptr ds:[403000],eax
push 0 ; /lParam = NULL
push Dumped.004010DF ; |DlgProc = dump.004010DF
push 0 ; |hOwner = NULL
push 65 ; |pTemplate = 65
push dword ptr ds:[403000] ; |hInst = NULL
call <jmp.&user32.DialogBoxParamA> ; /DialogBoxParamA
VC8
call Dumped.004ACF97
jmp Dumped.004A28FC
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
mov ecx,dword ptr ss:[esp+4]
test ecx,3
je short Dumped.004A2B20
mov al,byte ptr ds:[ecx]
add ecx,1
[注意]APP应用上架合规检测服务,协助应用顺利上架!