ollydb命令行插件的命令

命令    描述    举例
计算[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函数的调用设置断点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值