重要的 一般用得到的: $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," " 找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," " jmp loop exit: ret