type
Post
status
Published
date
May 16, 2023
slug
tech-od
summary
OD技巧汇总
tags
逆向
工具
category
技术分享
icon
password
URL
OD使用总结
断点
名称 | 设置 | 原理 | 优点 | 缺点 | 备注 |
普通断点 | F2 | 改写指令,插入int3中断 | 无数量限制 | 被程序校验检测 | 不要在函数头设置断点 |
硬件断点 | hr/hw | 分硬件访问断点,硬件写入断点和硬件执行断点,通过调试寄存器触发,DR0-DR3为设置断点的寄存器,DR7位调试控制寄存器 | 不被检测 | 最多四个 | 效率高 |
内存断点 | mr/mw | 在设置断点的内存上修改访问权限,改为不可访问不可写,这样会触发程序异常,以此将控制权转交给程序 | 适用范围广 | 数量限制 | 效率低 |
消息断点 | 手动设置 | 通过窗口句柄来设置指定消息类型的断点,需要窗体运行起来后设置,比如单击按钮事件触发ButtonUp消息,断点一般设置在系统领空,需要配合内存访问读点回到程序领空,函数位置为消息循环,可以阅读汇编代码,看看有哪些可疑函数,进一步分析是否与按钮事件有关 | ㅤ | ㅤ | ㅤ |
条件断点 | 通过命令栏设置 | 对于特定的运算逻辑,可以通过这种方式设置,比如循环运算,比如EAX == 00401000,当条件成立时触发中断,[[EAX+4]+4] == WM_LBUTTONUP,参数值为指定消息类型时触发中断,bp CreateFileW, unicode[[esp+4]]==“c:\1212.txt”,api断点,当参数被指定时触发中断,这里要特别注意字符的编码,否则不会触发中断,可以先下api断点,然后再锁定参数,这种方式类似于指针操作,esp+4是栈地址,[esp+4]是内存地址,[[esp+4]]表示取该地址处的数据,采用unicode编码 | ㅤ | ㅤ | ㅤ |
条件记录断点 | shift+f4 | 记录函数执行过程中需要跟踪的数据,比如参数,寄存器或内存数据,在设置对话框中,表达式就是我们要记录的内容,说明是对表达式的文字解释,解码表达式是指表达式的数据类型 | 适合执行次数较多的函数 | 设置较麻烦 | ㅤ |
- 作者:紫电穿云
- 链接:https://zidy.eu.org/article/tech-od
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。



