重要的 一般用得到的:
$RESULT //返回值
cmp $VERSION, "1.47"
ja ``````
#INC "脚本名"
#LOG //开始记录运行指令
ADD 目的,源
add [401000],5 //[4010000]+5
add x,16.50
add y,"times"
alloc //申请内存 RWE
alloc 1000 1000字节 保存到$RESULT放着申请内存的开始地址
Free $RESULT, 1000
AND 目的,源
and x,0F
AO 自动步过 ctrl+F8
ask 显示一个提示输入框,让用户输入 结果放在$RESULT(如果取消了则$RESULT=0)
$RESULT_1放着长度
ask "enter new EIP"
cmp $RESULT,0
je cancel_pressed
mov eip, $RESULT
cancel_pressed:
asm 地址(支持变量),指令
asm eip,"mov eax,ecx"//将EIP指定的地方进行汇编
bc 指定地址 breakPoint Clear
bc 无后缀 删除所有断点
bp 401000 设置断点
BPCND 地址,条件 条件断点
BPHWC 401000 BreakPoint HardWare Clear
BPHWCALL 删除所有的硬件断点
BPHWS 地址,模式 "r" 读取 "w" 吸入 "x"执行
bpmc memory clear
bprm 地址 , 大小 读取内存断点
bpwm 写入内存断点
cmp 跟OD一样
CMT EIP,"这是OEP" //注释
DEC 变量 减一操作
DIV 目的,源 除法
DM 地址,大小,文件名 DUMP Memory
DM 401000,1f,"dump.bin" //当前目录下生成 有则覆盖
DMA 401000,1F,"1.txt" 可追加
EOB 在下次中断发生时 跳
EOE 在下次异常发生时 跳
ESTI Exception Step Into//shift+f7
esti
ESTO Exception Step Continue //shift+f9
esto
EVAL 计算含义变量的表达式(用var定义)
var x
mov x,1000
eval "x的值是{ x }" // x的值是00001000
exec
pushad
pushfd
ende //保存了环境
FILL addr,len,value
fill 401000,10,90 //NOP 10h个字节
fill 401000,ff,[eax]
find 地址,查找内容,【最大大小】//支持?? ##是HEX “”为字符串,什么都不带是内存数据 输入的16进制必须是偶数
find EIP, #6A00E8#//查找一个CALL 其第一个参数是0(push 0)
find EIP, #6A??e8#//查找一个带参数CALL 一个?代表一个字符变量
find EIP, "kernel32.dll"//查找字符串
find EIP, "ker???32.d??"//一个?代表一个字符串变量
find eip,15ff //查找内存数据15ff
findcom 401000,"push eax"
gapi 地址
得到指定代码处的API调用信息
GMI 地址,信息(模块基地址等等)
gmi eip,codebase //$RESULT等于当前所在模块的代码段基地址
GP 401005
GPA 函数名,动态链接库名//得到指定函数地址
gpa "MessageBoxA", "user32.dll"
//$RESULT=函数MessageBoxA的地址
bp $RESULT
lm 0401000,0x100,"test.bin" //引到内存dm()
opcode addr //反汇编指定地址处的代码
opcode 00401000 //$RESULT opcode $RESULT_1汇编代码 _2字节数
repl 地址,查找字符串,替换字符串,长度
repl eip,#6a00#,#6b00#,10//10个字节以内
ret
wrt "out.txt",ebx写数据给文件 //覆盖
wrta 附加
wrta sFile,"\n"
找CALL /JMP
找到 CODE 中指向 VMP1段 的CALL
var fi
var sFile
mov sFile,"log.txt"
mov fi,00401000
loop:
inc fi
find fi,#E8??????00# //
cmp $RESULT,0
je exit
mov fi,$RESULT
gci fi,DESTINATION//获取当前命令的目标地址
cmp $RESULT,460000
jb loop
cmp $RESULT,497000
jae loop
wrta sFile,fi
wrta sFile,"\r\n"
jmp loop
exit:
ret
转载于:https://www.cnblogs.com/zcc1414/p/3982465.html