gpa "ZwCreateThread","ntdll.dll"
bp $RESULT //在ZwCreateThread处下CC断点,ANTI被一路扫过.
loop1:
run //其实,这个run有点不太好,会在过ANTI的时候,SEH给拦住
//如果改成ESTO,以下的都改成ESTO,那么就不用手工SHIFT+F9了
cmp eip,$RESUL
jne loop1
bc $RESULT //到达ZwCreateThread处,去掉断点
bp ep //下断点到EP处,呵呵,绕开了ANTI,前路一片光明
loop2:
run //可改ESTO
cmp eip,ep
jne loop2
bc ep //到达EP处,EXECryptor给扒的就差内裤了
mov temp,codeseg
sub temp,1 //原来codeseg楼上就是VM机!哈
gmemi temp,MEMORYBASE
mov vmseg,$RESULT
gmemi temp,MEMORYSIZE
bprm vmseg,$RESULT //下内存断点到虚拟机中
run //
bpmc
mov oep,eax //哈哈,从虚拟机中偷出了OEP,尽管可能是伪OEP
sti
bprm oep,1
loop3:
run
cmp eip,oep //猪八戒抢亲,不管三七二十一了。
jne loop3
bpmc
ret //到家,关门,放狗,成亲,熟米做成生饭。
在simonzh2000的《ExeCryptor 2.2.X 的 Anti Ollydbg 小结》中,
1. OEP 处的 CC 检查
2. AntiDump
3. IsDebuggerPresent
4. [Heap+10h]
5. PEB.NtGlobalFlag
6. GetTickCount
7. FindWindow
8. OutputDebugString
9. ReadProcessMemory(004B1C86, 004C91A0)
10. 对 API 的检查很严格, 几乎每一句都不能下 CC 断点, 不能修改
11. 对 Softice 也有一些检查.
12. 利用 OpenProcess("CSRSS.EXE") 来检测 OD