Ollydbg脚本常用命令整理+经典脚本实例

Ollydbg脚本常用命令整理+经典脚本实例

1.$RESULT 保存某些函数的返回值

2.#log 在脚本的前面加上,就会在OD的log窗口记录指令的运行。

3.alloc 申请内存如:alloc 1000

free $RESULT //申请1000字节的内存,初始地址放在$RESULT里

4.ask 显示一个对话框,让用户输入值,放在$RESULT里。如:ask “enter eax”

mov eax,$RESULT

5.bc 清除指定地址的断点,如:bc 00401000,bc eip;

6.bp 跟命令行的一样

7.bpcnd 设置条件断点如:bpcnd 00401000,”eax==1”

8.bpd 清除调用函数断点 bpd “send”

9.bphws 设置硬件断点,3中模式”r”,”w”,”x”, 如:bphws 401000,”r”

10.bphwc 清除硬件断点 bphwc 401000

11.bphwcall 清除所有硬件断点

12.bpl 设置记录断点,运行到这里时记录所需要的值,如:bpl 401000,”eax” //执行到这里把eax的值记录到log窗口

13.bpmc 清除内存断点

14.bprm,bpwm内存读取,写入断点,如:bprm 401000,10//对401000起始的16字节内存下读取断点

15.cmt 指定地址处加入注释 如:cmt eip,“this is OEP”

16.dm 从内存中取数据保存在文件中。如:dm 401000,10,“D:\123.txt”

17.dma是将数据追加到指定文件的为末尾。

18.find 地址,内容,范围(可以不加范围)

19.free 释放alloc申请的内存

20.go 执行到指定地址处如:go 402000

21.gpa 在指定的动态链接库中,获得指定函数的地址。

如:gpa “send”,“WS2_32.dll” //地址保存在$RESULT

bp $RESULT //相当于命令行bp send

22.log 将值显示在log窗口 如:log “abc” //log窗口显示”abc”

log eax //log窗口就显示eax:eax的值

var x

mov x,ff10

log x //log窗口就显示x:0000FF10

23.msg 将消息显示在一个对话框如:msg “the script stop”

24.msgyn 显示的对话框有”是”” 否”按钮,点”是”,$RESULT=1.点”否”等于0.

25.pause 暂停脚本运行。

26.ret 退出脚本,写在在脚本最后一行

27.run 相当于F9

28.rtu 相当于Ctrl+F9

29.sti 相当于F7

30.sto 相当于F8

31.var 声明一个变量

32.脚本也可以定义标签,Label:

33.汇编的大部分基本命令都可以在脚本中使用。



简单的ESP脱壳定律:

#log

var addr // 变量

sto //F8单步

log esp //将此时esp显示在log窗口

mov addr,esp //将esp赋给变量addr

bphws addr

jmp label //在addr处下硬件断点

label:

run //F9运行

bphwc //清除硬件断点

sto //F8单步

sto //F8单步

cmt eip,”This is OEP”//到了OEP处加注释

log eip //把这个OEP地址

显示在log窗口

ret //退出脚本

相关文档
最新文档