逆向学习篇(一)

开始学习逆向了,工欲善其事,必先利其器,第一篇,先记录先od的各个功能。

这里先借用一张网上偷来的图

反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单 界面选项->隐藏标题 或 显示标题 来进行切换是否显示。用鼠标左键点击注释标签可以切换注释显示的方式。
寄存器窗口:显示当前所选线程的 CPU 寄存器内容。同样点击标签 寄存器 (FPU) 可以切换显示寄存器的方式。

信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。

数据窗口:显示内存或文件的内容。右键菜单可用于切换显示方式。

堆栈窗口:显示当前线程的堆栈。
另外一个重要的选项就是调试选项,可通过菜单 选项->调试设置 来配置:

F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。(相当于 SoftICE 中的 F9)

F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到 CALL 等子程序不进入其代码。(相当于 SoftICE 中的 F10)

F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。(相当于 SoftICE 中的 F8)

F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。(相当于 SoftICE 中的 F7)

F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。(相当于 SoftICE 中的 F5)

CTR+F9:执行到返回。此命令在执行到一个 ret (返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。(相当于 SoftICE 中的 F12)

ALT+F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。(相当于 SoftICE 中的 F11)

另外这里补充一下上面一排小按钮的功能:

l 按钮-程序运行的日志、插件加载的信息查看
    e 按钮-模块信息,程序加载的所有模块、库 都可以看到路径等 双击就可以看到基地址
    m 按钮-内存信息   对于 e按钮中 的各个模块的基地址等
    t 按钮-线程信息
    w 按钮-窗口信息
    h 按钮- 一些句柄的信息
    c 按钮-反汇编窗口   或者双击 从寄存器的 EIP  shift+加号回到之前的位置
    p 按钮-记录修改信息 可以在这做还原 恢复
    k 按钮-调用堆栈
    b 按钮-断点
    r 按钮-显示参考

另外依次说明一下这几个按钮:

单步步入(F7),单步步过(F8),跟踪步入(ctrl+F11),跟踪步过(ctrl+F12),执行到返回(ctrl+F9),转到反汇编窗口中的地址


上面提到的几个快捷键对于一般的调试基本上已够用了。要开始调试只需设置好断点,找到你感兴趣的代码段再按 F8 或 F7 键来一条条分析指令功能就可以了。

猜你喜欢

转载自blog.csdn.net/xiaotu0821/article/details/84322573
今日推荐