三.系统和操作类
-----内存操作类
ALLOC :分配新的内存页, 你能读/写/执行. 譬如,ALLOC 2000
FREE :释放由ALLOC申请的内存. 譬如,free $RESULT,2000
-----文件操作类
DM :从指定地址处开始,在内存中提取指定大小的数据,并保存到指定的文件中
DMA :从指定地址处开始,在内存中提取指定大小的数据,并保存到指定的文件中;
如果指定文件已存在,则将数据追加到指定文件尾部。
DPE :提取执行模块到指定文件中。dpe "c:\unpack.exe", 401000
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 :获得进程信息
GPI MAINTHREADID(可以是 HPROCESS,PROCESSID,HMAINTHREAD,MAINTHREADID,MAINBASE,PROCESSNAME..)
GN :获得指定地址的符号名(比如指向API函数)
GMI :获得指定地址所在模块的相关信息。
gmi eip,CODEBASE (或者CODESIZE,或者 MODULEBASE,MODULEDSIZE等)
HANDLE :获得句柄信息
-----汇编和OD控制小类
ASM :修改指定地址的指令。譬如:ASM eip,"mov [eax],edx"
EXEC/ENDE :对当前调试进程,执行在EXEC和ENDE之间的指令,详细见OSCEditor,简例:
exec
mov eip,[eax]
ENDE
KEY :相对于在OD中执行按键
四.流程控制类
-----ODbgScript流程控制类
EOB :在下次中断发生时,跳转到指定标签处。注意,这个标签是脚本内的标签,而不是OD内的。
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 (同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" 操作,直到条件为真时停止。譬如,tocnd "eip > 40100A" // μ± eip > 40100A ê±í£?1
TC :关闭Trace
LBL :在指定地址处插入一个标签
CMT :在指定地址处,加入注释
五.汇编寄存器类(操作对象不一定是寄存器,也可以是用var声明的脚本变量)
INC :对变量进行加一操作
ADD :源操作数与目的操作数相加,并把相加的结果保存到目的操作数中
DEC :对变量进行减一操作
SUB :和汇编里的sub一样,两个数相减
AND :源操作数与目的操作数进行逻辑与操作,并将结果保存到到目的操作数中
XOR :源操作数与目的操作数进行异或操作,并将结果保存到到目的操作数中
OR :源操作数和目的操作数做逻辑或操作,并将结果保存到到目的操作数中
SHL :左移目的操作数,n比特位;并将结果保存到到目的操作数中
SHR :右移目的操作数,n 比特位;并将结果保存到到目的操作数中
CMP :比较 目的操作数与源操作数的大小,和其对应的汇编指令作用相同, 现支持字符串比较
REV :字节反转.
MOV :将源操作数移动到目的操作数中,譬如:mov eip,bugaddress2 。 bugaddress2是var声明变量。