OD/Windbg 一、简介(持续补充)

用于动态调试的工具;

1.1 布局、窗口分析

布局: 
    L     Log 窗口
    E    Executable窗口
    M    Memory窗口
    T    Threads 窗口: 有时需要激活 
    W    Window窗口
    H    Handle窗口
    C    CPU窗口    :汇编代码;
    /    Patches 窗口
    K    CallStack 窗口
    B    BreakPoint窗口
    R    Reference窗口
    …     Run Trace窗口
    S    Source 窗口

汇编窗口: 
    反编译窗口: 虚拟地址、字节码、汇编、注释或者运行时值; 
    寄存器状态栏: 各个寄存器值状态; 
    信息面板窗口;当前 指令的参数值
    数据面板窗口:内存数据;可改变现实方式; 
    堆栈面板窗口: esp,函数调用窗口; 

1.2 开始使用及常见的快捷键

1.2.1 打开 open:原厂仪没有运行来,从最开始全程跟踪,主要是用来跟踪程序开始之前原厂仪作的一些准备;
1.2.2 附加 Attach:原厂仪运行起来了,从原厂仪运行的当前位置开始跟踪;
1.2.3 中断 :双击击字节码,颜色变红;
    Alt + B:列出所有的断点

我们调试OD时,也常常使用NOP指令(0x90)将指令无效,或者修改寄存器得值,以测试特定的路径;

1.2.4 偏移地址:双击地址码,显示上下的偏移量;
1.2.5 单步:F8  运行:F9;
    Ctrl + F8,连续步过;Ctrl + F7,连续步入;
    使用ESC  或者  F12  或者遇到下一个断点 进行中断; 
     Ctrl + F9 :     运行到RET(0x4013C6)处,一般和F8 联合使用,调回当前函数的调用点的下一句;
    Alt + F9是:调试界面回到当前EIP(当前运行命令)的位置;
    - 减号是:回溯调用位置; 
    
    Ctrl + A : OD 重新分析; 

1.2.6 步入:F7  如果存在导入表,则按两次F7;
1.2.7 查看内存:Follow  in dump
1.2.8  OD显示运行状态表示,原厂仪在等待输入,OD显示是暂停状态表示已经中断下来了;
1.2.9 地址栏加标签:: 冒号
1.2.10 查找函数或者内存地址:Control + G
1.2.11 可执行模块:Alt + E (当前exe所关联的所有的DLL)
1.2.12 Ctrl+ N : 输入表窗口;
 

1.3 断点分类

执行断点:INT3:0xCC;F2;对数据的读写操作而已是无效的; 

内存断点: 内存监视的断点;
硬件断点:寄存器断点,最多4个; 
消息断点: Alt + W :Windows窗口; 
条件断点:shift + F2 


硬件断点:由CPU硬件支持的断点,使用DR0~DR3 调试地址寄存器,支持调试寄存器,最多只能有4个。(快,有限,支持有限个断点,)
软件断点:通过代码中设置特征值的方式实现(是硬件断点的补充,无限个软件断点)。
看技巧 《如何下条件断点》

1.4 寄存器

EAX:rep 每次初始化的内容、函数返回值存储、系统调用标号;
ECX:rep 循环的额次数;fastcall的第一个参数;
EDX:fastcall的第二个参数;
EBX:
ESP:永远指向存栈首地址
EBP:(extended base pointer拓展基址指针)堆栈操作时,实际操作的是ebp,通过ebp从堆栈中取得数据;正偏移是参数,负偏移是局部变量;
ESI:内测拷贝的源source;
EDI:内存拷贝的目的 Destination;

EIP:存当前运行命令的地址码
 

 

初学常见疑问:

1、网上下载的工具包中有:OllyICE.exe 和 OllyDBG.exe 的区别?  实质都是OD;

2、HawKOD.exe 和 ollydbg.exe 的区别,运行起来好像一样?   都是OD,只是HawKOD.exe 有各种插件,一般先用HawKOD.exe ,如果不行才用ollydab.exe;

3、如何确定附加的exe是我们需要跟踪的?  任务管理器查PID;

4、DWORD、byte、WORD 的字节数?  分别为4、1、2 ,和MFC中的是一样的; 

 

     

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值