odbgscript 常用命令
一. 变量和注释以及杂类
$RESULT :这个是系统保留变量,函数和ODS的命令返回都放这里.它还有一个隐含的变量
为$RESULT_1,有的返回是2个参数,第二个放这里.
$VERSION :返回当前版本号
VAR :在脚本中,声明一个变量
AN :从指定处,对代码进行分析
CMT :在指定地址处,加入注释
MSG :将指定消息,显示到一个对话框中
MSGYN :将指定消息,显示到一个对话框中,这个对话框有“是”、“否”按钮
ASK :显示一个提示输入框,让用户输入,并将结果保存转保留变量$RESULT中
(如果用户按了取消键,则$RESULT=0)
#INC :脚本里面包含了另外的脚本
二.断点类
------普通断点类
BP :在指定地址设断点
BC :清除指定地址的断点
------条件断点类
BPCND :在指定地址处,设置条件断点
BPL :在指定地址处设置记录断点,将表达式的结果记录到记录窗口中
BPLCND :在指定地址处设置记录断点,如果条件为真时,将表达式的结果记录到记录窗口中
------硬件断点类
BPHWS :在指定地址,设置硬件断点
BPHWC :删除指定地址处的硬件断点
BPHWCALL :删除所以的硬件断点
------内存断点类
BPRM :在指定地址处,设置一个内存读取断点
BPWM :在指定地址处,设置一个内存读写断点
BPMC :清除内存断点
三.系统和操作类
-----内存操作类
ALLOC :分配新的内存页, 你能读/写/执行.
FREE :释放由ALLOC申请的内存.
-----文件操作类
DM :从指定地址处开始,在内存中提取指定大小的数据,并保存到指定的文件中
DMA :从指定地址处开始,在内存中提取指定大小的数据,并保存到指定的文件中;
如果指定文件已存在,则将数据追加到指定文件尾部。
DPE :提取执行模块到指定文件中。
WRT :Write to file (replace existing one) the only accepted symbol is
"\r\n"Numbers are wrote as strings... for the moment
WRTA :Append to file
LM :引导Dm文件到内存 ,LM is the opposite of the DM command
-----系统信息类
GPA :在指定的动态链接库中,获得指定函数的地址。
GCMT :获得指定地址的注释
GMEMI :获得内存块的指定信息
GPI :获得进程信息
GN :获得指定地址的符号名(比如指向API函数)
GMI :获得指定地址所在模块的相关信息。
HANDLE :获得句柄信息
-----汇编和OD控制类
ASM :修改指定地址的指令。
EXEC/ENDE :对当前调试进程,执行在EXEC和ENDE之间的指令
KEY :相对于在OD中执行按键
四.流程控制类
-----ODbgScript流程控制类
EOB :在下次中断发生时,跳转到指定标签处
COB :发生中断后,让脚本继续执行(移除EOB指令)
EOE :在下次异常发生时,跳转到指定标签处
COE :发生异常后,让脚本继续执行(移除EOE指令)
JA :大于则跳到指定标签处,在cmp命令后使用
JAE :大于等于则跳到指定标签处
JB :小于则跳到指定标签处,在cmp命令后使用
JBE :小于等于则跳到指定标签处
JE :等于则跳到指定标签处
JNE :不等于则跳到指定标签处
JMP :跳转到指定标签.
PAUSE :暂停脚本运行
RET :退出脚本
-----OD流程控制类
RUN :相当于在OllyDbg中按 F9
GO :执行到指定地址处 F4
ESTI :相当于在OllyDbg按 SHIFT-F7
ESTO :相当于在OllyDbg按 SHIFT-F9
STI :单步步入,相当于在OllyDbg中按 F7
STO :单步步过,相当于在OllyDbg中按 F8
RTR :相当于在OllyDbg中执行 "Run to return"操作 [Ctrl+F9]
RTU :相当于在OllyDbg中执行 "Run to user code"操作 [Alt+F9]
AI :在OllyDbg中执行“自动步入” [Animate into]操作 [Ctrl+F7]
AO :在OllyDbg中执行“自动步过” [Animate over]操作 [Ctrl+F8]
TI :相当于在OllyDbg中执行 "Trace into" 操作 [Ctrl+F11]
TO :相当于在OllyDbg中执行 "Trace over" 操作 [Ctrl+F12]
TICND :执行 "Trace into" 操作,直到条件为真时停止
TOCND :执行 "Trace over" 操作,直到条件为真时停止
TC :关闭Trace
LBL :在指定地址处插入一个标签
五.计算和寄存器操作类
INC :对变量进行加一操作
ADD :源操作数与目的操作数相加,并把相加的结果保存到目的操作数中
DEC :对变量进行减一操作
SUB :和汇编里的sub一样,两个数相减
AND :源操作数与目的操作数进行逻辑与操作,并将结果保存到到目的操作数中
XOR :源操作数与目的操作数进行异或操作,并将结果保存到到目的操作数中
OR :源操作数和目的操作数做逻辑或操作,并将结果保存到到目的操作数中
SHL :左移目的操作数,n比特位;并将结果保存到到目的操作数中
SHR :右移目的操作数,n 比特位;并将结果保存到到目的操作数中
CMP :比较 目的操作数与源操作数的大小,和其对应的汇编指令作用相同, 现支持字符串比较
REV :字节反转.
MOV :将源操作数移动到目的操作数中
六.字符串操作类
LEN :获得字符串长度
FIND :从指定地址开始在内存中查找指定的内容
FINDOP :从指定地址开始查找指定一个指令,这个指令是以指定内容为开始的
FINDMEM :全内存中查找指定的内容
ATOI :转换一个字符到整数,返回结果保存到保留变量$RESULT中
ITOA :字符串进制转换
EVAL :计算含义变量的表达式
EXEC/ENDE :对当前调试进程,执行在EXEC和ENDE之间的指令
FILL :从指定地址处,填充指定长度的值
REPL :在指定地址开始,在指定长度字节内,用“替换字符串”替换“查找字符串”
SCMP :比较字符串,目的和源比
SCMPI :比较字符串,只不过是源和目的比
PREOP :获得当前地址的汇编指令
REF :交叉参考
OPCODE :反汇编当前指令