首页
社区
课程
招聘
[旧帖] [分享]OEP入口的特征 0.00雪花
2013-4-19 23:25 2082

[旧帖] [分享]OEP入口的特征 0.00雪花

2013-4-19 23:25
2082
【脱壳一般流程】

查壳(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

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 38
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
taoshahai 2013-4-20 16:28
2
0
这个不错,学习了!
游客
登录 | 注册 方可回帖
返回