ODB调试指令汇总

合集下载

OD使用完全教程

OD使用完全教程

OD使用完全教程.txt如果不懂就说出来,如果懂了,就笑笑别说出来。

贪婪是最真实的贫穷,满足是最真实的财富。

幽默就是一个人想哭的时候还有笑的兴致。

OllyDbg调试工具使用完全教程一,什么是 OllyDbg?OllyDbg 是一种具有可视化界面的 32 位汇编-分析调试器。

它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。

Version 1.10 是最终的发布版本。

这个工程已经停止,我不再继续支持这个软件了。

但不用担心:全新打造的 OllyDbg 2.00 不久就会面世!运行环境: OllyDbg 可以以在任何采用奔腾处理器的 Windows 95、98、ME、NT 或是 XP(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。

还有,OllyDbg 是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。

支持的处理器: OllyDbg 支持所有 80x86、奔腾、MMX、3DNOW!、Athlon 扩展指令集、SSE 指令集以及相关的数据格式,但是不支持SSE2指令集。

配置:有多达百余个(天呀!)选项用来设置 OllyDbg 的外观和运行。

数据格式: OllyDbg 的数据窗口能够显示的所有数据格式:HEX、ASCII、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。

帮助:此文件中包含了关于理解和使用 OllyDbg 的必要的信息。

如果您还有 Windows API 帮助文件的话(由于版权的问题 win32.hlp 没有包括在内),您可以将它挂在 OllyDbg 中,这样就可以快速获得系统函数的相关帮助。

启动:您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到OllyDbg中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。

ODB调试_转自网易博客

ODB调试_转自网易博客

原文链接:/zhoumhan_0351/blog/static/399542272009826105222389/(本文图片需用鼠标点击方可看到,其他转帖图片根本无法看到)整理:袁嘉璐10、OpNET的ODB调试1)基本概念日志文件:仿真日志(DESlog,DiscreteEventSimulationlog)和错误日志(Errorlog)。

它的内容是在仿真过程中由进程调用OPNET函数op_prg_log_handle_create()op_prg_log_entry_write()写入的。

在Help菜单下可以打开错误日志文件。

错误日志文件以文本方式保存为<home>/op_admin/err_log,除了在菜单中打开也可以在OPNET控制台(console)窗口输入op_vuerr命令查看。

它包含了函数调用堆栈信息,我们可以从函数阶层性的调用关系中精确定位出错位置。

在编写函数时必须使用FIN(functionbegin)、FOUT(functionout)、FRET (functionreturn)等界定函数范围的标识符,而且必须使它们配对。

编写程序时切记使FIN和FOUT/FRET配对。

要产生ODB调试信息,必须将仿真核心类型设定为development,优化的仿真核心(optimized)为了加快仿真速度不产生ODB调试信息。

之后我们还需要在仿真属性中包含debug环境变量。

ODB为控制和管理仿真行为提供一个交互式环境。

ODB支持断点(Breakpoint)定义,跟踪并显示仿真诊断信息。

ODB功能的实现有赖于进程模型中编写相应的程序支持,作为ODB指令激活调试状态(breakpoint、trace和action)的依据,可以在ODB窗口中输入help<参数:all,basic,action,event,memeory,misc,object,packet,process,scripting,stop,trace>查看感兴趣的指令。

OD命令大全

OD命令大全

适用于OllyDbg 的快捷命令栏插件(显示于程序的状态栏上方)CALC判断表达式WATCH添加监视表达式AT / FOLLOWDisassemble at address在地址进行反汇编ORIGDisassemble at EIP反汇编于EIPDUMPDump at address在地址转存DADump as disassembly转存为反汇编代码DBDump in hex byte format转存在十六进制字节格式DCDump in ASCII format转存在ASCII 格式DDDump in stack format转存在堆栈格式DUDump in UNICODE format转存在UNICODE 格式DWDump in hex word format 转存在十六进制字词格式STKGo to address in stack前往堆栈中的地址AS + 地址+ 字符串Assemble at address在地址进行汇编L + 地址+ 字符串Label at address在地址进行标号C + 地址+ 字符串Comment at address在地址进行注释BPBreak with condition使用条件中断BPXBreak on all calls中断在全部调用BPDDelete break on all calls 清除位于全部调用的断点BCDelete breakpoint清除断点MRMemory breakpt on access 内存断点于访问时MWMemory breakpt on write内存断点于写入时MDRemove memory breakpoint 清除内存断点HRHW break on access硬件中断在访问HWHW break on write硬件中断在写入HEHW break on execution硬件中断在执行HDRemove HW breakpoint清除硬件断点STOP停止运行程序调试PAUSE暂停程序调试RUNRun program运行程序进行调试Run till address运行到地址GERun and pass exception 运行和通过例外SIStep into步入SOStep over步过TITrace in till address跟踪进入直到地址TOTrace over till address 跟踪步过直到地址TCTrace in till condition跟踪进入直到条件TOCTrace over till condition 跟踪步过直到条件TRTill return直到返回TUTill user code直到用户代码LOGView Log window查看记录窗口MODView Modules window查看模块窗口MEMView Memory window查看内存窗口CPUView CPU window查看CPU 窗口CSView Call Stack查看Call 堆栈BRKView Breakpoints window 查看断点窗口OPTOpen Options打开选项EXIT / QUITQuit OllyDbg退出OllyDbgOPENOpen executable file打开可执行文件CLOSEClose executable关闭程序RSTRestart current program恢复当前程序HELPHelp on API functionAPI 函数的帮助DASMDisassemble immediate opcode反汇编直接的机器码FRFind reference to selected command/address 查找参考到选定的命令/地址ACAnalyse code分析代码SNSearch for Name(label) in current module在当前模块中搜索名称(标号)SOBScan object files扫描项目文件OllyDbg 常用快捷热键打开一个新的可执行程序(F3)重新运行当前调试的程序(Ctrl+F2)当前调试的程序(Alt+F2)运行选定的程序进行调试(F9)暂时停止被调试程序的执行(F12)单步进入被调试程序的Call 中(F7)步过被调试程序的Call (F8)跟入被调试程序的Call 中(Ctrl+F11)跟踪时跳过被调试程序的Call (Ctrl+F12) 执行直到返回(Ctrl+F9)显示记录窗口(Alt+L)显示模块窗口(Alt+E)显示内存窗口(Alt+M)显示CPU 窗口(Alt+C)显示补丁窗口(Ctrl+P)显示呼叫堆栈(Alt+K)显示断点窗口(Alt+B)打开调试选项窗口(Alt+O)。

OD常用汇编指令集详解

OD常用汇编指令集详解

常用汇编指令的认识软件破解常用汇编指令cmp a,b // 比较a与bmov a,b // 把b值送给a值,使a=bret// 返回主程序nop// 无作用call// 调用子程序,子程序以ret结尾 je或jz// 相等则跳(机器码是74或84) jne或jnz// 不相等则跳(机器码是75或85) jmp// 无条件跳(机器码是EB)jb// 若小于则跳ja// 若大于则跳jg// 若大于则跳jge// 若大于等于则跳jl// 若小于则跳pop xxx// xxx出栈push xxx// xxx压栈★★破解经典句式★★1.(最常用)mov eax [ ]mov edx [ ]call 00?????? 关键calltest eax eaxjz(jnz)或 jne(je) 关键跳转2 (最常用)mov eax [ ]mov edx [ ]call 00??????关键calljne(je)关键跳转3mov eax [ ]mov edx [ ]cmp eax,edxjnz(jz)4lea edi [ ]lea esi [ ]repz cmpsdjz(jnz)5mov eax [ ]mov edx [ ]call 00??????setz (setnz) al (bl,cl…)6mov eax [ ]mov edx [ ]call 00??????test eax eaxsetz (setnz) bl,cl…7call 00?????? ***push eax (ebx,ecx…)…………call 00??????pop eax (ebx,ecx…)test eax eaxjz(jnz)一、数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1.通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP 交换32位寄存器里字节的顺序XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )XADD 先交换再累加.( 结果在第一个操作数里 )XLAT 字节查表转换.── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )2.输入输出端口传送指令.IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,其范围是 0-65535.3.目的地址传送指令.LEA 装入有效地址.例: LEA DX,string ;把偏移地址存到DX.LDS 传送目标指针,把指针内容装入DS.例: LDS SI,string ;把段地址:偏移地址存到DS:SI.LES 传送目标指针,把指针内容装入ES.例: LES DI,string ;把段地址:偏移地址存到ES:DI.LFS 传送目标指针,把指针内容装入FS.例: LFS DI,string ;把段地址:偏移地址存到FS:DI.LGS 传送目标指针,把指针内容装入GS.例: LGS DI,string ;把段地址:偏移地址存到GS:DI.LSS 传送目标指针,把指针内容装入SS.例: LSS DI,string ;把段地址:偏移地址存到SS:DI.4.标志传送指令.LAHF 标志寄存器传送,把标志装入AH.SAHF 标志寄存器传送,把AH内容装入标志寄存器.PUSHF 标志入栈.POPF 标志出栈.PUSHD 32位标志入栈.POPD 32位标志出栈.二、算术运算指令 ADD 加法.ADC 带进位加法.INC 加 1.AAA 加法的ASCII码调整.DAA 加法的十进制调整.SUB 减法.SBB 带借位减法.DEC 减 1.NEC 求反(以 0 减之).CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减法的ASCII码调整.DAS 减法的十进制调整.MUL 无符号乘法.IMUL 整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),AAM 乘法的ASCII码调整.DIV 无符号除法.IDIV 整数除法.以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或 商回送AX,余数回送DX, (字运算).AAD 除法的ASCII码调整.CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去)CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去) 三、逻辑运算指令AND 与运算.OR 或运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL 逻辑左移.SAL 算术左移.(=SHL)SHR 逻辑右移.SAR 算术右移.(=SHR)ROL 循环左移.ROR 循环右移.RCL 通过进位的循环左移.RCR 通过进位的循环右移.以上八种移位指令,其移位次数可达255次.移位一次时, 可直接用操作码. 如 SHL AX,1.移位>1次时, 则由寄存器CL给出移位次数.如 MOV CL,04SHL AX,CL四、串指令DS:SI 源串段寄存器 :源串变址.ES:DI 目标串段寄存器:目标串变址.CX 重复次数计数器.AL/AX 扫描值.D标志 0表示重复操作中SI和DI应自动增量; 1表示应自动减量.Z标志 用来控制扫描或比较操作的结束.MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. ) CMPS 串比较.( CMPSB 比较字符. CMPSW 比较字. )SCAS 串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS 装入串.把源串中的元素(字或字节)逐一装入AL或AX中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. ) STOS 保存串.是LODS的逆过程.REP当CX/ECX<>0时重复.REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复.REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复.REPC当CF=1且CX/ECX<>0时重复.REPNC当CF=0且CX/ECX<>0时重复.五、程序转移指令 1>无条件转移指令 (长转移)JMP 无条件转移指令CALL 过程调用RET/RETF过程返回.2>条件转移指令 (短转移,-128到+127的距离内)( 当且仅当(SF XOR OF)=1时,OP1<OP2 )JA/JNBE 不小于或不等于时转移.JAE/JNB 大于或等于转移.JB/JNAE 小于转移.JBE/JNA 小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE 大于转移.JGE/JNL 大于或等于转移.JL/JNGE 小于转移.JLE/JNG 小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ 等于转移.JNE/JNZ 不等于时转移.JC 有进位时转移.JNC 无进位时转移.JNO 不溢出时转移.JNP/JPO 奇偶性为奇数时转移.JNS 符号位为 "0" 时转移.JO 溢出转移.JP/JPE 奇偶性为偶数时转移.JS 符号位为 "1" 时转移.3>循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4>中断指令INT 中断指令INTO 溢出中断IRET 中断返回5>处理器控制指令HLT 处理器暂停, 直到出现中断或复位信号才继续.WAIT 当芯片引线TEST为高电平时使CPU进入等待状态.ESC 转换到外处理器.LOCK 封锁总线.NOP 空操作.STC 置进位标志位.CLC 清进位标志位.CMC 进位标志取反.STD 置方向标志位.CLD 清方向标志位.STI 置中断允许位.CLI 清中断允许位.六、伪指令DW 定义字(2字节).PROC 定义过程.ENDP 过程结束.SEGMENT 定义段.ASSUME 建立段寄存器寻址.ENDS 段结束.END 程序结束.。

OD(OllyDbg)使用教程

OD(OllyDbg)使用教程
注意:这里又回到TraceMe的领空了
我们可以按Alt+B调出断点窗口,然后将GetDlgItemTextA的断点改为已禁止
接下来就在004011AE下一个断点,因为这里有调用到 GetDlgItemTextA这个函数
然后就要开始分析这些汇编代码的意义,所以,我们在使 用这个软件的时候,一定要明白这些代码的含义,现在我 们只是先认识一下这个软件的作用,所以就不为大家做出 分析,接下来就是修改代码了。其实我们要是分析下来, 可以发现,其实问题就在于一个代码行--004011F5
工具介绍 OllyDbg调试器
什么是OllyDbg?
OllyDbg简称OD,是一款具有可视化界面的用户模式调试器,结合了动 态调试和静态分析,具有强大的反汇编引擎,能够识别数千个被C和 Windows所使用的函数,并能将其参数注释出,能自动分析函数过程、 循环语句、代码中的字符串等。
显示被调试程序的反汇编代 码
上面是我的总结,大家可以大致的了解一下,有什么 不清楚的地方,可以过来跟我交流。共享的文件里面 还有教程,大家可以根据里面的教程,做更深入的学 习。还有很多汇编代码的含义没有介绍,共享文件里 面有完备的代码解释,可以好好看看,参考参考。
以上有不当之处,请大家给与批评指正, 谢谢大家!
22
注意:此时的领空是模块USER32,领空就是在
某一时刻,CPU的CS:EIP所指向代码的所有者
领空
接着,在USER32的领空中,在77D6B05E代码行按下F2, 下断点,然后按F9运行,然后键入下图所示:
点check,可以看到程序被OD截停在下断点的地方,如图所示: 接着,按Alt+F9,返回到用户代码,可以回到:
调试中我们经常要用到的快捷键有这些:

ODB命令及使用

ODB命令及使用

ODB命令及使用一、概述ODB(Object Database)是面向对象的数据库管理系统,它是基于对象的数据模型的数据库,在ODB中数据是以对象的形式存储和管理的。

ODB提供了一组命令和语法来操作和管理数据库中的对象。

二、常用命令1. 创建数据库:CREATE DATABASE [database_name]创建一个新的ODB数据库。

2. 连接数据库:CONNECT DATABASE [database_name]连接到已存在的ODB数据库。

3.断开连接:DISCONNECTDATABASE断开与当前数据库的连接。

4.显示数据库:SHOWDATABASES显示所有可用的ODB数据库列表。

5. 创建类:CREATE CLASS [class_name]创建一个新的对象类。

6.显示类:SHOWCLASSES显示所有已存在的对象类。

7. 插入对象数据:INSERT INTO [class_name] [column_name=value]向指定类中插入新的对象数据。

8. 更新对象数据:UPDATE [class_name] SET [column_name=value] WHERE [condition]更新类中满足条件的对象数据。

9. 删除对象数据:DELETE FROM [class_name] WHERE [condition]删除类中满足条件的对象数据。

10. 查询对象数据:SELECT * FROM [class_name] WHERE [condition]查询类中满足条件的对象数据。

11. 创建索引:CREATE INDEX ON [class_name]([column_name])在指定的列上创建索引。

12. 删除索引:DROP INDEX ON [class_name]([column_name])删除指定列上的索引。

13. 备份数据库:BACKUP DATABASE [database_name]备份指定的ODB数据库。

ODB命令及使用

ODB命令及使用

1)基本概念日志文件:仿真日志(DES log,Discrete Event Simulation log)和错误日志(Error log)。

它的内容是在仿真过程中由进程调用OPNET 函数op_prg_log_handle_create ()op_prg_log_entry_write ()写入的。

在Help 菜单下可以打开错误日志文件。

错误日志文件以文本方式保存为<home>/op_admin/err_log,除了在菜单中打开也可以在OPNET 控制台(console)窗口输入op_vuerr 命令查看。

它包含了函数调用堆栈信息,我们可以从函数阶层性的调用关系中精确定位出错位置。

在编写函数时必须使用FIN(function begin)、FOUT(function out)、FRET(function return)等界定函数范围的标识符,而且必须使它们配对。

编写程序时切记使FIN 和FOUT/FRET 配对。

要产生ODB 调试信息,必须将仿真核心类型设定为development,优化的仿真核心(optimized)为了加快仿真速度不产生ODB 调试信息。

之后我们还需要在仿真属性中包含debug 环境变量。

ODB 为控制和管理仿真行为提供一个交互式环境。

ODB 支持断点(Breakpoint)定义,跟踪并显示仿真诊断信息。

ODB 功能的实现有赖于进程模型中编写相应的程序支持,作为ODB 指令激活调试状态(breakpoint、trace 和action)的依据,可以在ODB 窗口中输入help<参数:all,basic,action,event,memeory,misc,object,packet,process,scripting,stop,trace>查看感兴趣的指令。

ODB常用的指令分为basic,event,object,packet,stop,trace,process 几类。

OD反调试大全

OD反调试大全

调试技巧总结-原理和实现-------------------------------------------------------------------------------------------------------2008.8.7 shellwolf一、前言前段学习反调试和vc,写了antidebug-tester,经常会收到message希望交流或索要实现代码,我都没有回复。

其实代码已经在编程版提供了1个版本,另其多是vc内嵌asm写的,对cracker而言,只要反下就知道了。

我想代码其实意义不是很大,重要的是理解和运用。

做个简单的总结,说明下实现原理和实现方法。

也算回复了那些给我发Message的朋友。

部分代码和参考资料来源:1、<<脱壳的艺术>> hawking2、<<windows anti-debugger reference>> Angeljyt3、4、<<软件加密技术内幕>> 看雪学院5、<<ANTI-UNPACKER TRICKS>> Peter Ferrie我将反调试技巧按行为分为两大类,一类为检测,另一类为攻击,每类中按操作对象又分了五个小类:1、通用调试器包括所有调试器的通用检测方法2、特定调试器包括OD、IDA等调试器,也包括相关插件,也包括虚拟环境3、断点包括内存断点、普通断点、硬件断点检测4、单步和跟踪主要针对单步跟踪调试5、补丁包括文件补丁和内存补丁反调试函数前缀检测攻击通用调试器 FD_ AD_特定调试器 FS_ AS_断点 FB_ AB_单步和跟踪 FT_ AT_补丁 FP_ AP_声明:1、本文多数都是摘录和翻译,我只是重新组合并翻译,不会有人告侵权吧。

里面多是按自己的理解来说明,可能有理解错误,或有更好的实现方法,希望大家帮忙指出错误。

2、我并没有总结完全,上面的部分分类目前还只有很少的函数甚至空白,等待大家和我一起来完善和补充。

第四卷 OllyDBG 插件系列 第三篇 ODbgScript的脚本命令

第四卷 OllyDBG 插件系列 第三篇 ODbgScript的脚本命令

第四卷 OllyDBG 插件系列第三篇 ODbgScript的脚本命令(2)(图) 安全中国 更新时间:2008-09-30 01:04:22 责任编辑:池天作者: hnhuqiong4.流程控制类我曾经教过一个小DD写脚本,他老是把OD的运行流程和ODbgScript的流程搞混淆了,这个概念要弄清除,作为新手常常弄不清这两个概念,而这两个概念是必须要弄明白的!要知道ODbgScript是一个脚本插件,它执行脚本的流程,靠脚本运行过程中各种返回值/计算值判断后,修改/控制/影响OD的流程.还是打个比方吧:ODbgScript是铁路传感/信号/道岔控制系统,OD就是列车,而各种返回值就是各种信号灯和传感器,列车的运行过程中,传感器系统不断的给出列车的各种运行状态,而ODbgScript就根据这些运行状态来调相应的运行时刻表让列车在控制的范围内运行.那么ODbgScript控制道岔系统就完成了一趟完整的调度系统. 大家都坐过火车吧??你喜欢的是打着信号灯的铁道工人?还是现代化的排灯/道岔控制系统???对应上一章的中断系统,我们又换概念打比方了(呵呵,对于新手我还是感觉自己有自己的一套办法来教大家弄清这些的),断点在这里就是在铁轨上的信号灯,传感器它感受到了列车(OD)到这里了,马上给控制系统(ODbgScript)发回信号,控制系统知道列车在什么位置后,相应的控制---信号灯/道岔系统,列车就乖乖的听从我们的调度来运行了.脚本其实就是列车时刻表!!!而脚本内的标号就是所管理的机务段! 邓爷爷说:实现四个现代化,靠的是科技!hnhuqiong说:OD逆向实现自动化,靠的是ODbgScript! (被愤怒的群众痛殴中!!!)-----ODbgScript流程控制类EOB :在下次中断发生时,跳转到指定标签处COB :发生中断后,让脚本继续执行(移除EOB指令)EOE :在下次异常发生时,跳转到指定标签处COE :发生异常后,让脚本继续执行(移除EOE指令)JA :大于则跳到指定标签处,在cmp命令后使用JAE :大于等于则跳到指定标签处JB :小于则跳到指定标签处,在cmp命令后使用JBE :小于等于则跳到指定标签处JE :等于则跳到指定标签处JNE :不等于则跳到指定标签处JMP :跳转到指定标签.PAUSE :暂停脚本运行RET :退出脚本-----OD流程控制类RUN :相当于在OllyDbg中按 F9GO :执行到指定地址处 F4ESTI :相当于在OllyDbg按 SHIFT-F7ESTO :相当于在OllyDbg按 SHIFT-F9STI :单步步入,相当于在OllyDbg中按 F7STO :单步步过,相当于在OllyDbg中按 F8RTR :相当于在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 :关闭TraceLBL :在指定地址处插入一个标签现在大家明白了ODbgScript可以给我们带来多少便利了吧????概念恐怕大家已清楚了,就不多讲解了. 其实,这些都是自动控制专业范围内的东西,刚好我本科是这个专业,所以比较轻车熟路. :)现代化社会这些自动控制无所不在,只是你用上了却不一定留心它!用一个复杂一点的脚本示意图我们简单的来进行类比,让大家牢牢记住它的(感谢FLY的FSG V1.X-2.X 脚本)5.计算和寄存器操作类有了刚才的概念,那么这里的计算概念就好办了,这些都是ODbgScript内的计算.这里就不多讲解了.就是现在命令有点少,我争取在下一个版本加多命令,这样调度起来不至于不会计算了,只好上铁轨手工操作了..INC :对变量进行加一操作ADD :源操作数与目的操作数相加,并把相加的结果保存到目的操作数中DEC :对变量进行减一操作SUB :和汇编里的sub一样,两个数相减AND :源操作数与目的操作数进行逻辑与操作,并将结果保存到到目的操作数中XOR :源操作数与目的操作数进行异或操作,并将结果保存到到目的操作数中OR :源操作数和目的操作数做逻辑或操作,并将结果保存到到目的操作数中SHL :左移目的操作数,n比特位;并将结果保存到到目的操作数中SHR :右移目的操作数,n 比特位;并将结果保存到到目的操作数中CMP :比较目的操作数与源操作数的大小,和其对应的汇编指令作用相同, 现支持字符串比较REV :字节反转.MOV :将源操作数移动到目的操作数中6.字符串操作类LEN :获得字符串长度FIND :从指定地址开始在内存中查找指定的内容FINDOP :从指定地址开始查找指定一个指令,这个指令是以指定内容为开始的FINDMEM :全内存中查找指定的内容ATOI :转换一个字符到整数,返回结果保存到保留变量$RESULT中ITOA :字符串进制转换EVAL :计算含义变量的表达式EXEC/ENDE :对当前调试进程,执行在EXEC和ENDE之间的指令FILL :从指定地址处,填充指定长度的值REPL :在指定地址开始,在指定长度字节内,用“替换字符串”替换“查找字符串”SCMP :比较字符串,目的和源比SCMPI :比较字符串,只不过是源和目的比PREOP :获得当前地址的汇编指令REF :交叉参考OPCODE :反汇编当前指令这里是一个很强技术概念类的类,为什么这样说呢?因为完全靠系统信息来定位断点是远远不够的,那么我们必须寻找程序内的"特征代码串",这个和杀病毒软件是一个概念,杀病毒软件是怎么干活的??就是搜索内存,找各个程序的可疑的"特征字符串或者特征码".和人的DNA一样,各个程序的DNA是不同的但又有相同的地方这就是亲子鉴定中心赚钱的秘方 :).从逆向角度来说,某个系列的加壳,加密软件它有它的一贯性,因为它的开发架构已经定死了,除非它大规模推倒从来.这里我就自己创造一个叫法叫"程序的DNA"吧,这个不是我提出来的,很多大侠早就提出了这个概念,比如FLY的"特定码",OPcode其实就那么多,但是就是这些,简简单单的OPcode就组成了千千万万的程序,但有些东西是具有一贯性的,这个和生物学上的遗传概念一模一样.药剂学上有一个东西叫生物试剂,就是利用生物的特定DNA来检测的.一旦我们找到某个"程序的DNA",那么很多东西就简单多了,大侠级别的就是"程序DNA试剂工厂",他们能够通过他们长年累月的积累总结出了大量的"程序DNA特征"检测手段,并且能够敏感的捕捉到新的"程序DNA特征",这些才是逆向水平高低的所在.为什么呢会这样呢?因为程序必须某时某刻要干某件事,这就注定了它的死结,大侠们能一眼就看明白这段OPcode它是在干什么(这需要长年累月的积累),你要动态解码,那么你解码的一小节就是你的命门,你要ANTi,你anti前必须做准备工作,这个准备工作就是命门等等诸如此类.你要干什么,我就在你要干什么前定位你的"特征码",在你干什么前把你的手段给残废了(大侠们够残忍了吧?呜~~~我的ANTI,我的解码)这就是矛和盾永远可以斗争的地方,我anti你,你定位我的ANTI,好,那么我要动态解码后才ANTI,大侠就盯上你的动态解码的回写内存,我把我动态解码一段花了,那么,我用花特征分离出你的花.........逆向反ANTI的手段就是在你动手前我先动手!!!!这叫先发制人,一招快,招招快!!!!可怜程序它必须按照列车时刻表来跑,最搞笑的是脱壳领域,有的大侠懒得理哪些大规模的ANTi了不费哪个劲脱你了,就干脆写个小东西Loader带跑.穿透壳后用特征码一步步定位后patch掉,何必处处脱呢........这里,我说了一通,大家可以看图一,第20行命令find eip,#fe??0f84#, 这个句话的含义就是寻找特征字符串fe??0f84,而这个特征字符串是什么含义呢,??代表的是可以是Hex任何数, 说明被2.0版FSG保护程序在第一次运行系统函数LoadlibraryA后,从这里取出ESP 指针所指的内存地址,下断点后,就会出现了这个特征字符码.这个是2.0版特有的.大侠们发现了它的这个特征码.它出一定会出现在被FSG2.0保护程序经过上面运行步骤后的某个内存地址中.大家是不是有点豁然开朗的感觉??我们来分析一下轰动一时的特征串:00B2C27C 68 A78FC31F PUSH 1FC38FA7f9,改eip00B7266A CALL 00B7267C68A78FC31F就是在程序还没有启动运行的时候,就存在的一个特征字符串,它存在于加载到内存后的地址00b2c27c上,大侠发现了它的这个BUG,就是在00b2c27c处,直接将列车扳道岔到00b7266a上,火车一下子变轨到b7266a处,从而跳过了themida的验证.我们用脚本来实现这个思想是什么样的?var bugaddress1var bugaddress2find eip,#68A78FC31F# //查找"特征字符串"mov bugadr1,$RESULT //保存查找到的地址bphws bugaddress1,"x" //给bugaddress1处信号灯传感器系统下命令(断点)run //列车放行,会被bugaddress1处的信号系统命令停下来bchwc bugaddress1 //信号灯系统复位,但列车还是停在原位等待放行 :)mov bugaddress2,b7266a //将b7266a的地址给变量mov eip,bugaddress2 //扳轨改变列车时刻表,从bugaddress1-bugaddress2处的//所有站点都不过了,直接走近道到bugaddress2.//这下这些站点的"乘客"们傻眼了,被脚本指挥的列车拒载了.esto //列车放行这个特征字符串仅仅存在于themida的1.3.3.0中,而不是全系列的themida的特征字符串,但是这个思想只要有了就容易了,可你是否具备了一眼就能从全系列themida中利用它的这个思想来定位它的"特征字符串"的能力,那就需要你不断的加强你的功力了.其实1.3.3.0爆出这个BUG,各路大侠马上行动,先从1.3.3.0版本中定位b2c27c和00b7266a地址处上下文中有什么可以进行再定位的地方,其实这就是这个系列的DNA指纹.从而一代枭雄轰然倒地!而上面的脚本的bugaddress1,和bugaddress2就是大侠们利用ODbgScript来进行反复搜索的利器.(习题,你能从1.3.3.0版本里面找到通用于1.3.3.5版bugaddress1的DNA指纹么?)这里我们讲解完了,ODbgScript的命令等等,下面章节我将讲解ODbgScript的使用注意事项和使用技巧.(作为脚本创作大户,原loveboom,fly都是脚本高手,其实他们才是真正的ODbgScript的英雄,我不才勉为其难吧发表速度可能要慢下来了,找合适的例子进行演示和进行语言组织就不像前三章那么可以天马行空了.)。

OD的常用命令

OD的常用命令
四.两种不同情况的不同修改方法
1.修改为jmp
je(jne,jz,jnz) =>jmp相应的机器码EB (出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息
xxxxxxxxxxxx 出错信息,例如:注册码不对,sorry,未注册版不能...,"Function Not Avaible in Demo" 或 "Command Not Avaible" 或 "Can't save in Shareware/Demo"等 (我们希望把它跳过,不让它出现)
例: LES DI,string ;把段地址:偏移地址存到ESI.
LFS 传送目标指针,把指针内容装入FS.
例: LFS DI,string ;把段地址:偏移地址存到FSI.
LGS 传送目标指针,把指针内容装入GS.
例: LGS DI,string ;把段地址:偏移地址存到GSI.
0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )
2. 输入输出端口传送指令.
IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )
OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )
输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,
。。。
。。。
xxxxxxxxxxxx 出错信息(我们希望不要跳到这里,不让它出现)它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
1. 通用数据传送指令.
MOV 传送字或字节.
MOVSX 先符号扩展,再传送.

od 堆栈操作指令

od 堆栈操作指令

od 堆栈操作指令
OD (OllyDbg) 是一款流行的Windows 平台上的反汇编和调试工具。

在OD 中,你可以使用堆栈操作指令来查看和操作堆栈上的数据。

以下是一些常见的堆栈操作指令:
1. `push`:将一个值压入堆栈。

2. `pop`:从堆栈中弹出并返回一个值。

3. `pushad`:将所有寄存器的内容压入堆栈。

4. `popad`:从堆栈中弹出所有寄存器的值并恢复它们。

5. `pushfd`:将标志寄存器的值压入堆栈。

6. `popfd`:从堆栈中弹出标志寄存器的值并恢复它。

7. `xchg`:交换寄存器和堆栈顶部的值。

8. `mov`:将一个值移动到另一个位置,可以是寄存器、内存或堆栈。

9. `call`:调用一个函数或子例程,并将返回地址压入堆栈。

10. `ret`:从当前函数或子例程返回,并从堆栈中弹出返回地址。

这些指令可以帮助你在OD 中查看和修改堆栈上的数据,从而更好地理解程序的执行流程和行为。

ABAQUS+Python+Script中ODB处理手册

ABAQUS+Python+Script中ODB处理手册

ABAQUS Python Script 中Odb处理手册1 Odb操作命令:1.1 Odb对象1.1.1 进入Odb对象的途径import odbAccesssession.odbs[name]1.1.2 Odb()该方法创建一个新的Odb对象,格式为:session.Odb()A.必须参数1)name:用于指定生成的Odb对象的名称B.选填参数1)analysisTitle:用于指定输出数据库的标题的字符串,默认值为空的字符串;2)description:用于描述输出数据库的字符串,默认值也为空的字符串;3)path:用于指定输出数据库的路径,默认值也为空的字符串;C.返回值返回一个Odb对象1.1.3 close()该方法用于关闭一个输出数据库。

【注】:该方法无返回值,也无参数。

1.1.4 getFrame()该方法返回指定时间的frame,该方法不适用于在不同分析步具有不同模型的Odb文件。

A.必须参数frameValue:用于指定需要哪个frame的浮点数,该值可以是total timeB.选填参数match:符号常量,用于指定假如没有找到frameValue所指定的frame,哪个frame被返回,可能取值为:CLOSES T、BEFORE、AFTER、EXACT,默认值为:CLOSESTC.返回值一个OdbFrame对象1.1.5 save()该方法用于保存输出到Odb文件中。

【注】:该方法无返回值,也无参数。

1.1.6 update()该方法用于将分析得到的增加的分析步和增量步写入到Odb文件中。

A.返回值返回一个布尔值,用于指定是否有额外的分析步或增量步被写入到Odb对象中。

【注】:该方法无参数。

1.1.7 成员1) isReadOnly:布尔值,用于指定是否Odb文件以只读形式打开;2) interactions:一个库,用于存储Interaction对象;3) interactionProperties:一个库,用于存储InteractionProperty对象;4) amplitudes:一个库,用于存储Amplitude对象;5) filters:一个库,用于存储Filter对象;6) rootAssembly:一个OdbAssembly对象;7) jobData:一个JobData对象;8) parts:一个库,用于存储OdbPart对象;9) materials:一个库,用于存储Material对象;10) steps:一个库,用于存储OdbStep对象;11) sections:一个库,用于存储Section对象;12) sectionCategories:一个库,用于存储SectionCatagory对象;13) sectorDefinition:一个SectorDefinition对象;14) userData:一个UserData对象;15) customData:一个RepositorySupport对象;16) profiles:一个库,用于存储Profile对象;1.2 FieldLocation对象该对象用于指定场中那些可用数据的位置,例如,位移场中,存在一个FieldLocation对象,该对象有一个NODAL的成员。

OPNET的ODB调试以及VC联调

OPNET的ODB调试以及VC联调

OPNET的ODB调试、动态展示以及VC联调OPNET的ODB调试是非常强大的一个调试方法,操作界面类似DOS窗口,或者linux窗口,有很多指令可以选择,但是我觉得只用其中几个指令搭配上VC联调以及探测统计量,我们在OPNET的调试中就可以无往而不利!不过首先还是提供ODB调试的全过程链接吧:/zhoumhan_0351/blog/static/399542272009826105222389/分三点介绍:1、怎么进入ODB调试界面2、ODB动态展示3、VC联调一、怎么进入ODB调试:如图,点击这个小人的按钮,进入仿真界面:针对这个仿真界面,我们需要改动一些设计:然后,点击Run进入ODB界面:ODB操作界面:红框标出的就是指令的输入界面。

在这里输入help你可以看到所有的指令分类,如果想看更详细的就按照介绍的这样输入help <你想看的类或者指令>,如help<fulltrace>基于假设我们是在第13个事件报错(实际上这个工程没有bug,在这里主要是介绍一下流程),我们要输入一下指令,如图:这个指令是让它在第13个事件停止,继续输入指令:这个指令是让OPNET执行下去,然后继续输入指令:这个指令是让OPENT在第13个事件的仿真中,显示出所有的仿真过程:然后输入next/continue让仿真继续(因为我这里是没有错的,所以我只能输入next)。

输入了next之后,可以看到从这个事件开始,每个进程、函数、中断直行的过程:内容很多,不详细截图了。

二、动态展示:以上是ODB调试的基本介绍,下面继续介绍ODB调试的动态展示。

在左边窗口选择要观看的节点、或者进程选择model,下面的演示要勾上!如图:单击CLONE,将窗口复制出来,便于最大化观看!点击continue之后,我们可以看到,包的流动,如图:更进一步,我们可以选择观看进程的过程,黄色的表示仿真程序当前所在的位置:好了,动态展示到这里所有的步奏都讲完了,下面讲一下怎么VC联调。

OD之常用命令

OD之常用命令

OD之常⽤命令⼀:od断点注释保存的问题,由于od只有在正常退出的情况下才会保存分析代码时留下的注释,⽽很多时候为了在退出od时不让⽬标程序退出使⽤了剥离进程,这样就会导致这次操作所有的注释都没有保存,第⼆次重新载⼊时候⼜的重新分析注释下断点,所以需要⾃⼰下载⼀个插件 Myinfo.dll,这个插件可以⼿动保存注释和断点,插件⾥⾯的导出操作是把注释导出到⼀个⽂件中,导⼊操作是把注释导⼊到od代码分析界⾯来,注意,每次导出操作都会删掉⽂件中的内容,保留本次导出内容⼆: 插件安装,od插件只需把插件的dll粘贴到od安装⽂件夹的plugin⽂件夹中即可三: 定位代码时有时使⽤⼀些花指令代码⽐如_asm{ mov eax,eax mov eax,eax} 这样的代码⽆实际作⽤,但是有助于定位程序代码段,可是查找命令序列时有时找不出来,这就需要点查看可执⾏模块,找出⽬标模块,双击,⼀般需要重复两次操作,这样才能找到该命令序列,以为开始中断并不处于主模块内,需要进⼊主模块段才可以查找注释和指令四:od⼀些常⽤命令dd 以四字节⽅式转储,也就是以四字节的⽅式查看地址内存的值,⽐如⼀个数组 array[20] 它的⾸地址是405118 那么 dd 405118 就可以看到array[0]的值了,dd i*0x4+405118 就可以看到数组array[i]的值,游戏分析时分析对象数组,dd [eax*4+03f82520] ⾸先取出数组03f82520[eax]⾥⾯保存的地址,然后查看该地址的值,很多怪物对象的⾸地址都是放在对象数组⾥⾯,找到该地址,就可以分析出该怪物的相应信息如 dd [eax*4+03f82520] +0xc 这个可能就是怪物⽣命等等dc 是以ascill码显⽰该地址,这个⼀般是查看⽂本信息hw硬件中断在写⼊时db 以⽐特格式⼗六进制转储当然有⼀些快捷键命令暂时不表五: 备份,修改数据之前,难免要备份,这就要⽤到备份功能,这样就可以很容易恢复到修改之前六: 跟踪调试,这个功能相当不错,可以记录所有寄存器的值,这样便于观察分析七: 直接更改程序汇编代码,然后保存到⽂件,这样就相当于更改了部分程序代码,很⽅便⼋:下API断点等熟悉了再补充。

OD关于DLL调试之说明—Kernel32

OD关于DLL调试之说明—Kernel32

OD关于DLL调试之说明—Kernel32 CALL DWord Ptr [<&KERNEL32.WriteFile>] kernel32.WriteFile将数据写入一个文件,也可将这个函数应用于对通信设备、管道、套接字以及邮槽的处理CALL DWord Ptr [<&KERNEL32.WriteConsole>] kernel32.WriteConsole 在当前光标位置写入字符串到控制台屏幕缓冲区.CALL DWord Ptr [<&KERNEL32.WideCharToMultiByte>]kernel32.WideCharToMultiByte映射一个unicode字符串到一个多字节字符串。

CALL DWord Ptr [<&KERNEL32.WaitForSingleObject>]kernel32.WaitForSingleObject用来检测hHandle事件的信号状态CALL DWord Ptr [<&KERNEL32.VirtualQuery>] kernel32.VirtualQuery 以页为单位,遍历进程虚拟空间。

CALL DWord Ptr [<&KERNEL32.VirtualProtect>] kernel32.VirtualProtect 呼叫处理序的虚拟位址空间里,变更认可页面区域上的保护。

CALL DWord Ptr [<&KERNEL32.VirtualFree>] kernel32.VirtualFree取消或者释放调用进程的虚地址空间页的一个区域CALL DWord Ptr [<&KERNEL32.VirtualAlloc>] kernel32.VirtualAlloc 用进程的虚地址空间,预定或者提交一部分页CALL DWord Ptr [<&KERNEL32.UnhandledExceptionFilter>]kernel32.UnhandledExceptionFilter显示了一个对话框告诉你发生了一个错误CALL DWord Ptr [<&KERNEL32.TlsSetValue>] kernel32.TlsSetValue设置线程数组中的值CALL DWord Ptr [<&KERNEL32.TlsGetValue>] kernel32.TlsGetValue读取线程数组中的值CALL DWord Ptr [<&KERNEL32.TlsFree>] kernel32.TlsFree取消或者释放某个线程的TLS数组索引变量。

odb++ 资料语法

odb++ 资料语法

odb++ 资料语法ODB++ (Open Database++),也被称为ODB,是一个开源的数据库引擎,提供了一个高效、可靠和轻量级的解决方案,用于管理关系数据库中的数据。

ODB++ 的语法遵循SQL 标准,并具有一些特定的扩展和功能。

以下是ODB++ 的一些主要语法和概念:1.数据定义语言(DDL)o CREATE TABLE:用于创建新的数据表。

o ALTER TABLE:用于修改现有的数据表。

o DROP TABLE:用于删除数据表。

2.数据操纵语言(DML)o INSERT INTO:用于向表中插入新的记录。

o UPDATE:用于修改表中的现有记录。

o DELETE FROM:用于从表中删除记录。

3.数据查询语言(DQL)o SELECT:用于从表中检索数据。

可以使用各种条件、排序和聚合函数。

4.事务控制命令o BEGIN TRANSACTION:开始一个新的事务。

o COMMIT:提交当前事务,使其更改永久化。

o ROLLBACK:回滚当前事务,撤销其更改。

5.视图o视图是虚拟的表,由一个或多个SQL 查询定义。

你可以查询视图就像查询实际的表一样。

6.存储过程和函数o存储过程是一组为了完成特定功能的SQL 语句的集合。

o函数与存储过程类似,但返回一个值。

7.触发器o触发器是与表事件(如INSERT、UPDATE 或DELETE)相关联的特殊类型的存储过程。

当这些事件发生时,触发器会自动执行。

8.约束o约束用于确保数据的完整性和准确性,例如主键约束、外键约束、唯一约束等。

9.别名o使用AS关键字为列或表指定别名,使查询更简洁或更具可读性。

10.子查询•子查询可以在主查询的SELECT、FROM或WHERE子句中使用,以基于其他查询的结果执行操作。

11.连接•使用JOIN语句将多个表根据某些条件组合起来。

有INNER JOIN、LEFT JOIN、RIGHT JOIN 和FULL OUTER JOIN 等类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

整理:袁嘉璐
要对网上下载资料进行比对
帮助:
1.help
Lists available topics列出所有可用的栏目
2.help <topic>
Lists available commands for topic
3.help <command>
Lists usage of command
Maps
1.Objassoc——print object association information.
2.objid ——obtain object ID from hierarchical name.
3.objmap ——print list of specified object(s).
4.objpkmap——print list of packets owned by specified object.
5.pktimemap——print list of specified packet(s).
6.pkmap print——list of specified packet(s).
7.ptmapprint ——list of packets in specified tree.
Entity Information实体信息
1.attrget ——print object attribute value
2.attrprint——print object attribute information
3.attrset ——set object attribute value
4.evprint ——print specified pending events
5.iciprint_ev——print ICI (if any) associated with current event
6.iciprint_pk ——print ICI associated with packet (if any)
7.interfaceset——set a value on an esys interface
8.objprint ——print object information
9.pkprint ——print packet contents
10.proprint——print information about specified process
11.simprint——print simulation attribute for all that match pattern Breakpoints
1.actstop——reactivate breakpoint
stop ——set breakpoint at specific communication
3.cont——continue event execution until breakpoint
4.delstop——delete specified breakpoint(s)
5.evstop——set breakpoint for specified event
6.interfacestop——set breakpoint for a specified esys interface
7.intstop——set breakpoint at module for specified interrupt
8.lstop——set breakpoint for specified label
9.mlstop——set breakpoint at module for specified label
10.mstop——set breakpoint at module
11.pkstop——set breakpoint for specified packet
12.prolstop——set breakpoint for specified process and label
13.prostop——set breakpoint for specified process
14.status——list breakpoints and traces
15.suspstop——deactivate breakpoint
16.tstop——set breakpoint for specified time
Traces跟踪
1.acttrace——reactivate trace
2.deltrace——delete specified trace(s)
3.encaptrace——enable/disable automatic tracing of encapsulating packets
4.exectrace——enable/disable execution trace
5.fulltrace ——enable/disable global trace
6.interfacetrace——set trace for a specified esys interface
7.ltrace——set trace for specified label
8.lmap——display matching label information
9.mltrace——set trace at module for specified label
10.mtrace ——set trace at module
11.pktrace——set trace for specified packet
12.proltrace——set trace for specified process and label
13.protrace——set trace for specified process
14.pttrace——set trace for specified packet tree
15.status——list breakpoints and traces
16.susptrace ——deactivate trace
17.tracefmt ——set trace output format
Memory Tracking in ODB内存跟踪
ODB Commands equivalent to Memory Sources
1.memsnk——print memory deallocation sink list
2.memsrc ——print memory allocation source list
3.memstats——print memory allocator statistics
4.mtagfilter——set or change filter for memory tagging
5.mtagflush——flush memory tags
6.mtagoff——disable memory tagging
7.mtagon——enable memory tagging
8.mtagprint ——print memory tags
Reducing Keystrokes with Aliases, Variables, and Scripts使用别名、变量、脚本来减少按键
Aliases let you abbreviate long commands
e alias to assign or print an alias
e unalias to unassign an alias
3.Example: alias top.campus.office.router_1.rip r1r
Variables let you abbreviate often-used values
e setvar to assign or print a variable
e unsetvar to unassign a variable
3.Shell variables used if an alias is unresolved
Scripts let you combine several commands
1.script_start/script_save
2.script_view
3.script_play
Miscellaneous ODB Commands杂项
1.! ——repeat a command from the command history
2.history——show last <n> commands (default 25)
3.snapshot——generate intermediate output vector file
4.where——generate function call stack of breakpoint location
5.pagesize ——output <count> lines at a
6.tracefmt——set trace output format。

相关文档
最新文档