我是靠谱客的博主 甜蜜蜻蜓,最近开发中收集的这篇文章主要介绍浅谈逆向——OD杂项(OD的使用4),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

浅谈逆向-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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部