命令 描述 举例
计算[Expressions]
CALC 表达式 计算表达式的值 CALC EAX/2+1
? 表达式 同上
表达式 (第一个字符不能是字母) 同上 2*2
WATCH 表达式 增加需要监视的表达式 WATCH +[460030+ESI]
W 表达式 同上
分配[Assignments]
SET 寄存器=表达式 将表达式的值,写入8、16、32位寄存器中 SET AL=0SET ESI=[DWORD EDI-10]
reg=表达式 同上 AX=0FFFF
SET 内存=表达式 将表达式的值,写入8、16、32位内存中 SET [410000]=80000001SET [BYTE EAX+ESI*2]=0
反汇编窗口[Disassembler]
AT 表达式 在反汇编窗口中转到指定地址处 AT 410000
FOLLOW 表达式 同上 FOLLOW EAX
ORIG 跳到当前EIP处
* 同上
数据与栈
D 表达式 在数据窗口中跟进地址 D 460000
DUMP表达式 同上
DA [表达式] 以汇编格式显示数据
DB [表达式] 以十六进制字节格式显示数据
DC [表达式] 以ASCII文本显示数据 DC EAX
DD [表达式] 以地址(栈格式)显示数据
DU [表达式] 以UNICODE显示数据
DW [表达式] 以十六进制字格式显示数据
STK 表达式 在栈中跟进地址
编译
A 表达式 [,命令] 编辑指定地址处的命令 A 410000, XOR EAX,EAX
标签和注释
L 表达式, 标签 向指定地址设置符号名 L EAX, loopstart
C 表达式, 注释 在指定地址设置注释 C EAX, Here loop starts
断点和命令
BP 表达式 [,条件] 在指定地址设置 INT3 断点 BP EAX+10BP 410010, EAX==WM_CLOSEBP Kernel32.GetProcAddress
BPX 标签 在当前模块每一个对外部标签的调用设置断点 BPX CreateFileA
BC 表达式 删除指定地址的断点 BC 410010
MR 表达式1 [,表达式2] 设置指定范围的内存访问断点
MW 表达式1 [,表达式2] 设置指定范围的内存写断点Set
MD 移除内存断点
HR 表达式 设置1字节的硬断点,当访问该地址时中断
HW 表达式 设置1字节的硬断点,当写该地址时中断
HE 表达式 设置硬断点,当执行该地址时中断
HD [表达式] 移除指定地址处的硬断点
跟踪命令
STOP 暂停执行
PAUSE 同上
RUN 运行程序
G [表达式] 运行直到地址
GE [表达式] 跳过异常句标,并运行直到地址
S 单步步人
SI 同上
SO 单步步过
T [表达式] 跟踪步入,直到地址
TI [表达式] 同上
TO [表达式] 跟踪步过,直到地址
TC 条件 跟踪步入,直到条件满足
TOC 条件 跟踪步过,直到条件满足
TR 执行,直到返回
TU 执行,直到用户代码段
OllyDbg窗口
LOG 显示记录窗口
MOD 显示执行模块窗口
MEM 显示内存窗口
CPU 显示CPU窗口
CS 显示调用栈
BRK 显示断点窗口
OPT 编辑选项
其他命令
EXIT 关闭OllyDbg
QUIT 同上
OPEN [文件名] 打开要调试的可执行文件
CLOSE 关闭调试程序
RST 重运行当前程序
HELP 显示该标签帮助
HELP OllyDbg 显示OllyDbg帮助
HELP APIfunction 显示API帮助 HELP CreateFile
命令不区分大小写,括号中的参数是可选的。表达式[Expressions]可以包含常量、寄存器和内存参考,并支持所有的标准算术运算和逻辑运算。默认情况下,所有的常量都是十六进制的。在数字的结尾加点,可又将其标识为十进制数。如果您没有指定内存大小,那么插件都会认为是32位的。
条件记录断点[Conditional logging breakpoint] 允许您,在条件中断发生时,执行指定的插件命令。为了传递到命令行插件,请在命令之前加上点,例如:
.EAX=0
.RUN
举例说明:
?CALC EAX/2+1 - 计算表达式的值,并显示十六进制格式结果。寄存器属于在CPU窗口中显示的线程;
?2*2 - 计算表达式的值(4),并以十六进制格式显示;
?WATCH +[460030+ESI] -增加监视,以十六进制和十进制两种方式显示在地址0x460030+ESI处,双字长内存的内容;
?SET AL=0 - 改变当前线程寄存器AL的值为0;
?SET ESI=[DWORD EDI-10] - 获得在地址EDI-10处的双字长内存的内容,并把它写到ESI中。ESI和EDI都属于CPU窗口选择的线程;
?SET [410000]=80000001 - 改变在0x410000处双字长内存内容为0x80000001。注意:不像在反汇编窗口或CPU 数据窗口,命令行插件不能为修改的内存块创建备份[backup copy] !
?A 410000, XOR EAX,EAX - 改变在0x410000处命令为XOR EAX,EAX;
?L EAX, loopstart - 在地址EAX处,设置标签名称“loopstart”;
?BP EAX+10 - 在EAX+10处,设置无条件断点;
?BP 410010, EAX==WM_CLOSE - 在0x410010处设置条件断点。如果EAX等于符号常量WM_CLOSE 时中断;
?BP Kernel32.GetProcAddress - 在KERNEL32中的GetProcAddress函数设置无条件断点;
?BPX CreateFileA - 在反汇编窗口选择的模块中,对所有CreateFileA函数的调用设置断点。
ollydb命令行插件的命令
最新推荐文章于 2024-03-10 15:47:18 发布