概述
浅谈逆向-OD杂项
- Run trace
- Hit trace
- OD常见问题
Run trace
Run跟踪可以把被调试程序执行过的指令保存下来,以便了解之前发生的事情。该功能将地址,寄存器的内容,消息等记录到Run trace的缓冲区中。在运行之前,将缓冲区空间设置的较大一些,否则在执行指令太多时会造成缓冲区溢出(OD会自动丢弃旧纪录)。
可以使用快捷键ALT+O打开调试选项,跟踪标签页中进行设置。如果需要将数据保存在文件中,需要单击菜单功能项中的…,单击右键,执行记录到文件。
需要运行时,只需要单击调试->打开或清楚Run跟踪。打开它的缓冲区后,OD会记录执行过程中所有的暂停,使用小键盘的±号可以浏览程序的执行路线。OD会用实际的内存状态解释寄存器和栈的变化。
当反汇编窗口显示被调试程序领空时,在窗口右键快捷菜单栏中选择Run追踪->添加所有函数入口,检查每个可识别函数调用的次数。运行后可以在Run跟踪窗口中的右键菜单中执行统计模块命令,查看次数。
Hit trace
它的作用时让用户知道哪一部分代码被执行了,那一部分没有。OD的方法时:选中区域每条指令下断CC,中断时OD便去除,故此在使用Hit trace时不能再数据中设置断点。
当遇到转跳分支较多的代码时,需要了解执行路线,可以选中这段代码,然后单击右键快捷菜单Hit 追踪->添加选中部分。F9运行,OD会在已被执行的指令前用不同的颜色添加标记。 没有相关命令,使用Ctrl+A分析代码。
OD常见问题
1.乱码
OD将代码当作了数据处理,没有进行反汇编识别。
解决方法:
- 右键->分析->分析代码 Ctrl+A
分析->在模块中删除分析
在UDD目录中删除相应UDD文件
2.快速回到当前程序领空
如果想快速回到当前CPU所在的指令处
解决方法:
- 双击寄存器面板的EIP或者单击菜单栏C
3.OD修改EIP
解决方法
- 将光标移动至需要修改的地址处,右键菜单在此处新建EIP
Ctrl+*
4.UDD
OD把所有与程序或者模块相关的信息保存在单独的文件中,以便在模块重新加载时,继续使用。(标签,注释,断点,监视,分析数据,条件)
5.已经删除的断点,OD重新加载时依旧出现
解决方法:
- 配置文件ollydbg.ini 中使Backup UDD files=1;
6.OD反汇编窗口输入push E000会提示未知标识符
无法正确识别字符是字母还是数字
解决方法:
- 在字母前加0表示是数字
7.OD出现假死现象
OD调试加壳程序,运行到断点,OD就可能出现假死。
解决方法:
- 打开配置文件,ollydbg.ini。如果Restore windows 是一个极大的值,就会设为0.
8.微调窗口显示
通过Ctrl+上下箭头对反汇编窗口或数据窗口翻动1字节。
9.复制到可执行文件时,提示错误信息“Unable to locate data in executable file”
修改的地方不再RawSize范围内,修改PE文件,使RawSize=VirtualSize
10.把call调用改成函数名形式
例如:
- call XXXXXX 假设XXXXXX处是A函数,将光标停在该处,按Shift+;会弹出一个标签框,在其中输入字符A,所有调用XXXXXX处的call指令都会变成call的形式。
11.设置OD为即时调试器
管理员身份运行OD,选项->实时调试设置->设置OD为实时调试器即可。
12.在右键快捷菜单中添加用OD打开
选项->添加到资源管理器右键菜单 即可,
最后
以上就是甜蜜蜻蜓为你收集整理的浅谈逆向——OD杂项(OD的使用4)的全部内容,希望文章能够帮你解决浅谈逆向——OD杂项(OD的使用4)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复