Ollydbg调试学习笔记

一、基础知识 
1.1、Ollydbg

Ollydbg(简称OD)是Windows平台下Ring3级的程序调试利器。程序调试有静态调试和动态调试两种。静态调试是指将程序源代码编译成可执行程序之前,用手工或编译程序等方法对程序源代码进行测试,来查找和修正程序中的语法错误和逻辑错误。动态调试则是在可执行程序的运行过程中,来查找和修正程序中的语法错误和逻辑错误。随着系统安全与逆向工程的不断发展,程序调试已经成为信息安全爱好者所必备的一种技术。OD结合了静态调试和动态调试的方法,功能强大,已经成为了Windows平台下普通应用程序的调试利器。

1.2、PE文件

PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件

1.3、寄存器

EAX 是”累加器”(accumulator), 它是很多加法乘法指令的缺省寄存器。 
EBX 是”基地址”(base)寄存器, 在内存寻址时存放基地址。 
ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。 
EDX 则总是被用来放整数除法产生的余数。 
ESI/EDI分别叫做”源/目标索引寄存器”(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串。 
EBP是”基址指针”(BASE POINTER), 它最经常被用作高级语言函数调用的”框架指针”(frame pointer)。

二、OD的各个窗口

图片描述

2.1、反汇编窗口

  地址栏[Address] - 显示距双击地址处的相对地址。再次双击基地址,则恢复为标准地址显示模式;      
  十六进制数据栏[Hex dump] - 设置或取消非条件断点;
  反汇编栏[Disassembly] - 调用汇编器,修改命令;
  注释栏[Comment] - 增加或修改与命令相关的注释。

2.2、信息窗口

用于解码反汇编窗口中选中的第一个命令的参数,信息窗口也会显示隐含的参数。

2.3、数据窗口

用于显示内存或文件的内容。可以从以下预处理格式中选择一种显示方式:字节[byte]、文本[text]、整数[integer]、浮点数[float]、地址[address],反汇编[disassembly]、PE头[PE Header]。

2.4、寄存器窗口

用于显示和解释当前所选线程的CPU寄存器中的内容。该窗口同样允许修改寄存器,并可以跟进地址到其它CPU窗口。

2.5、堆栈窗口

用于显示当前线程的堆栈。当被调试程序暂停运行时,堆栈窗口一般会自动滚动将当前ESP指向的地址放在窗口的第一条。并且这个地址被高亮显示。在某些情况下禁止滚动会更方便一些,可以通过在堆栈窗口右键单击[锁定堆栈]来禁止堆栈自动滚动。

2.6、其他窗口 
图片描述
L -> 日志窗口 
E -> 显示程序运行使用的模块 
M -> 显示我们程序映射到内存的信息 
T -> 显示程序的线程窗口 
W -> Windows显示程序窗口 
H -> 句柄窗口 
C -> 回到Ollydbg主窗口,CPU窗口 
P -> 如果程序经过了修改,这里显示修改的信息 
K -> 显示调用堆栈的窗口信息 
B -> 显示程序普通断点的列表窗口 
R -> Reference 参考窗口,显示我们在 OllyDbg 中搜索的结果。 
… -> 显示 RUN TRACE(RUN 跟踪)命令的结果

三、OD的各种初始设置及快捷键

3.1、怎样设置实时调试

当然,我们不一定会用到实时调试,除非特殊情况。因为如果我们运行的程序出现崩溃时。

选项 -> 实时调试设置

图片描述
3.2、在 OllyDbg 中关联插件

OllyDbg 允许你使用插件,这样会对解决问题有所帮助

首先下载插件,解压插件文件夹,为插件建立一个文件夹(可以在任意位置)

选项->界面选项

我们看到作为插件路径的目录已被指定,即 OllyDbg.exe 所在的目录,可以把插件放在那里

图片描述

3.3、OllyDbg 中最常用的快捷键

F7 执行一行代码,遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条 指令上。

F8 执行一行代码,遇到 CALL 等子程序不进入其代码。

这两个键的功能有所不同,以后将会看到。

F2 在显著行设置断点,再次按 F2 删除断点。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白(litebai.com)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值