/*
//////////////////////////////////////////////////////////////////
★	PETITE2.2 OEP Finder v1.0				★
★	Author: loveboom					★
★	Email :	bmd2chen@tom.com				★	
★	Date  :	2004-2-17					★
★	Note  : 我只用我自己写的程序试了一下			★
★	如果不能脱的话，请把不能脱的东东发到我信箱。谢谢!	★
★	设置时请不要把内存异常项选上，其它的选上.		★
//////////////////////////////////////////////////////////////////
*/
var Count			//定义循环变量，用于后面的六个F8
var mm				//用于检测是不是第一步，也就是那个CALL
mov Count, 7
mov mm,1
eoe lbl1			//如果异常就执行LBL1
run

lbl1:
eob lbl2
gpa "LoadLibraryA","kernel32.dll"
bphws $RESULT,"x"		//下LoadLibraryA硬件断点
esto

lbl2:
eob lbl3
bphwc $RESULT
rtu				//消除断点并返回到用户代码

lbl3:
var baddr			//break addr
mov baddr,eip
sub baddr,11
eob lbl4
bphws baddr,"x"
run

lbl4:
eob lbl5
bphwc eip			//找到后运行、清除断点并执行lbl5
cmt eip,"中断在这里"

lbl5:				//这里就是执行6个F8
cmp Count,0
je lbl6
sub Count, 1
sto
jmp lbl5

lbl6:				//判断有没有到达OEP
cmp mm, 0
jne lbl8
cmt eip,"OEP,Please dumped it!:),如果你没有看到代码取消分析就可以了"
ret
