简单0llyDbg脚本学习

刚开始学,菜鸟一B。

下面直接进入主题。


首先练习一个脱壳。ASPack 2.12 -> Alexey Solodovnikov

我们尝试用ESP定律

程序入口为

00431001 > 60 pushad
00431002 E8 03000000 call crackme2.0043100A
00431007 - E9 EB045D45 jmp 45A014F7
0043100C 55 push ebp
0043100D C3 retn
0043100E E8 01000000 call crackme2.00431014

F8一次,下硬件访问断点,F9运行后取消断点。来到这

004313B0   /75 08           jnz short crackme2.004313BA
004313B2   |B8 01000000     mov eax,1
004313B7   |C2 0C00         retn 0C
004313BA   \68 01F04200     push crackme2.0042F001
004313BF    C3              retn
004313C0    8B85 26040000   mov eax,dword ptr ss:[ebp+426]
004313C6    8D8D 3B040000   lea ecx,dword ptr ss:[ebp+43B]

F8单步走三次就到达程序OEP

00403861    55              push ebp
00403862    8BEC            mov ebp,esp
00403864    6A FF           push -1
00403866    68 F0624000     push CrackMe1.004062F0
0040386B    68 D44C4000     push CrackMe1.00404CD4
00403870    64:A1 00000000  mov eax,dword ptr fs:[0]
00403876    50              push eax
00403877    64:8925 0000000>mov dword ptr fs:[0],esp
0040387E    83EC 58         sub esp,58
00403881    53              push ebx
00403882    56              push esi
00403883    57              push edi
00403884    8965 E8         mov dword ptr ss:[ebp-18],esp
00403887    FF15 48604000   call dword ptr ds:[406048]                ; kernel32.GetVersion

整个流程就是——


1、单步F8 
2、记录ESP的地址 
3、在ESP的地址处,下硬件访问断点 
4、接着运行 
5、删除硬件断点 
6、单步走3次 
7、就来到OEP了! 


所以脚本就可以写了。

脚本一般都是保存为OSC格式,也可以保存为txt格式

var addr//定义一个变量addr 
sto //单步,也就是F8 
mov addr,esp //把此处ESP的地址给变量addr 
bphws addr,"r"//下硬件读取断点,也就是硬件访问断点 
run//运行,也就是F9 
BPHWC addr //取消断点 
sto //单步,也就是F8,第1次 
sto //单步,也就是F8,第2次 
sto //单步,也就是F8,第3次 
cmt eip,"this is the OEP! found by JoyChou"//在EIP处,也就是现在OD停留了位置加注释 
MSG "dump and fix it"//弹出一个对话框
ret//结束脚本 

快吃午饭了,写着玩玩,下午还去图书馆!

 

下面接着一个PE PACK的壳

整个流程是——

1、单步F8三次

2、记录ESP的地址 
3、在ESP的地址处,下硬件访问断点 
4、接着运行 
5、删除硬件断点 

6、F8一次就到OEP


所以脚本为

 1 var addr//定义一个变量
 2 sto//单步走
 3 sto
 4 sto
 5 mov addr,esp
 6 bphws addr,"r"//在esp处下硬件访问断点
 7 run
 8 bphwc addr//删除断点
 9 sto
10 cmt eip, "this is the OEP ,found by JoyChou"//在eip加注释
11 MSG "Now, dump and fix it"
12 
13 ret

你可能感兴趣的:(脚本)