没有合适的资源?快使用搜索试试~ 我知道了~
首页OllyDbg入门完全教程(完美排版)
OllyDbg入门完全教程(完美排版)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
OllyDbg入门完全教程(完美排版).pdf OllyDbg入门完全教程(完美排版).pdf
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/10321412/bg1.jpg)
OllyDbg
OllyDbg
OllyDbg
OllyDbg 完全教程
完全教程
完全教程
完全教程
目录
目录
目录
目录
第一章 概述
.....................................................................................................................
1
第二章 组件
.....................................................................................................................
5
一、一般原理[ General prnciples ]
.......................................................................
5
二、反汇编器[ Disassembler ]
................................................................................
8
三、分析器[ Analysis ]
...........................................................................................
9
四、 Object 扫描器[ Object scanner ]
...................................................................
12
五、 Implib 扫描器 [ Implib scanner ]
.................................................................
12
第三章 OllyDbg 的使用
...................................................................................................
13
一、如何开始调试[ How to start debugging session ]
........................................
13
二、 CPU 窗口[ CPU window ]
..................................................................................
14
三、断点[ Breakpoints ]
.......................................................................................
14
四、数据窗口[ Dump ]
............................................................................................
15
五、可执行模块窗口[ Executable modules window ]
.............................................
16
六、内存映射窗口[ Memory map window ]
...............................................................
17
七、监视与监察器[ Watches and inspectors ]
......................................................
19
八、线程[ Threads ]
..............................................................................................
19
九、调用栈[ Call stack ]
.....................................................................................
20
十、调用树[ Call tree ]
.......................................................................................
21
十一、选项[ Options ]
...........................................................................................
21
十二、搜索[ Search ]
............................................................................................
22
十三、自解压文件[ Self — extracting (SFX) files ]
...........................................
22
十四、单步执行与自动执行[ Step — by — step execution and animation ]
............
23
十五、 Hit 跟踪[ Hit trace ]
.................................................................................
23
十六、 Run 跟踪[ Run trace ]
................................................................................
24
十七、 快捷键
.........................................................................................................
26
十八、插件[ Plugins ]
...........................................................................................
29
十九、技巧提示[ Tips and tricks ]
......................................................................
29
第四章 其他功能
............................................................................................................
30
一、调试独立的 DLL [ Debugging of stand — alone DLLs ]
.....................................
30
二、解码提示[ Decoding hints ]
...........................................................................
32
三、表达式赋值[ Evaluation of expressions ]
....................................................
32
四、自定义函数描述[ Custom function descriptions ]
........................................
34
![](https://csdnimg.cn/release/download_crawler_static/10321412/bg2.jpg)
1
第一章
第一章
第一章
第一章 概述
概述
概述
概述
OllyDbg 是一种具有可视化界面的 32 位汇编 — 分析调试器 。 它的特别之处在于可以在
没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。
Version
1.10 是最终的发布版本。 这个工程已经停止,我不再继续支持这个软件了。
但不用担心:全新打造的 OllyDbg 2.00 不久就会面世!
运行环境 : OllyDbg 可以以在任何采用奔腾处理器的 Windows 95 、 98 、 ME 、 NT 或是
XP (未经完全测试)操作系统中工作,但我们强烈建议 你 采用 300 — MHz 以上的奔腾处理
器以达到最佳效果。还有, OllyDbg 是极占内存的,因此如果 你 需要使用诸如追踪调试
[ Trace ]之类的扩展功能话,建议 你 最好使用 128MB 以上的内存。
支持的处理器 : OllyDbg 支持所有 80x86 、 奔腾 、 MMX 、 3DNOW ! 、 Athlon 扩展指令
集、 SSE 指令集以及相关的数据格式,但是不支持 SSE2 指令集。
配置: 有多达百余个选项用来设置 OllyDbg 的外观和运行。
数据格式: OllyDbg 的数据窗口能够显示的所有数据格式: HEX 、 ASCII 、 UNICODE 、
16/32 位有 / 无符号 /HEX 整数 、 32/64/80 位浮点数 、 地址 、 反汇编 ( MASM 、 IDEAL 或是 HLA )
、
PE 文件头或线程数据块。
帮助 : 此文件中包含了关于理解和使用 OllyDbg 的必要的信息 。 如果 你 还有 Windows
API 帮助文件的话(由于版权的问题 win32.hlp
win32.hlp
win32.hlp
win32.hlp 没有包括在内 ) , 你 可以将它挂在 OllyDbg
OllyDbg
OllyDbg
OllyDbg
中,这样就可以快速获得系统函数的相关帮助 。
启动: 你 可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放
到 OllyDbg 中 , 或者重新启动上一个被调试程序 , 或是挂接 [ Attach ] 一个正在运行的程序
。
OllyDbg 支持即时调试。 OllyDbg 根本不需要安装,可直接在软盘中运行!
调试 DLLs : 你 可以利用 OllyDbg 调试标准动态链接库 (DLLs) 。 OllyDbg 会自动运行
一个可执行程序。这个程序会加载链接库,并允许 你 调用链接库的输出函数。
源码级调试 : OllyDbg 可以识别所有 Borland 和 Microsoft 格式的调试信息 。 这些信息
包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构 。
代码高亮 : OllyDbg 的反汇编器可以高亮不同类型的指令 ( 如 : 跳转 、 条件跳转 、 入栈
、
出栈 、 调用 、 返回 、 特殊的或是无效的指令 ) 和不同的操作数 ( 常规 [ general ] 、 FPU/SSE
、
段 / 系统寄存器、在栈或内存中的操作数,常量 ) 。 你 可以定制个性化高亮方案。
线程: OllyDbg 可以调试多线程程序。因此 你 可以在多个线程之间转换,挂起、恢复
、
终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误(就像调用
GETLASTERROR 返回一样 ) 。
分析: OllyDbg 的最大特点之一就是分析。它会分析函数过程、循环语句、选择语句
、
表 [ tables ] 、 常量 、 代码中的字符串 、 欺骗性指令 [ tricky constructs ] 、 API 调用 、 函数中参
数的数目, import 表等等。这些分析增加了二进制代码的可读性,减少了出错的可能性 , 使
得我们的调试工作更加容易。
![](https://csdnimg.cn/release/download_crawler_static/10321412/bg3.jpg)
2
Object 扫描: OllyDbg 可以扫描 Object 文件 / 库(包括 OMF 和 COFF 格式 ) ,解压代
码段[ code segments ]并且对其位置进行定向。
Implib 扫描 : 由于一些 DLL 文件的输出函数使用的索引号 , 对于人来说 , 这些索引号
没有实际含义。如果 你 有与 DLL 相应的输入库[ import library ] , OllyDbg 就可以将序号转
换成符号名称。
完全支持 Unicode : 几乎所有支持 ASCII 的操作同时也支持 UNICODE ,反之亦然 。
名称: OllyDbg 可以根据 Borland 和 Microsoft 格式的调试信息,显示输入 / 输出符号
及名称 。 Object 扫描器可以识别库函数 。 其中的名称和注释 你 可任意添加 。 如果 DLL 中的
某些函数是通过索引号输出的 , 则 你 可通过挂接输入库 [ import library ] 来恢复原来的函数
名称 。 不仅如此 , OllyDbg 还能识别大量的常量符号名 ( 如 : 窗口消息 、 错误代码 、 位域 [
bit
fields ] … )并能够解码为已知的函数调用。
已知函数: OllyDbg 可以识别 2300 多个 C 和 Windows API 中的常用函数及其使用
的参数 。 你 可以添加描述信息 、 预定义解码 。 你 还可以在已知函数设定 Log 断点并可以对
参数进行记录。
函数调用: OllyDbg 可以在没有调试信息或函数过程使用非标准的开始部分[ prolog ]
和结尾部分[ epilog ]的情况下,对递归调用进行回溯。
译者注:
004010D0 push ebp
\
004010D1 mov ebp,esp
|
004010D3 sub esp,10h
|
> prolog
004010D6 push ebx
|
004010D7 push esi
|
004010D8 push edi /
……
004010C5 pop edi
\
004010C6 pop esi
|
004010C7 pop ebx
|
> epilog
004010C8 mov esp,ebp
|
004010CA pop ebp
|
004010CB ret /
栈 : 在栈窗口中 , OllyDbg 能智能识别返回地址和栈框架 [ Stack Frames ] 。 并会留下一
些先前的调用。如果程序停在已知函数上,堆栈窗口将会对其参数进行分析解码。
译者注:栈框架[ Stack Frames ]是指一个内存区域,用于存放函数参数和局部变量。
SEH 链: 跟踪栈并显示结构化异常句柄链。全部链会显示在一个单独的窗口中。
搜索:方法真是太多了!可精确、模糊搜索命令或命令序列,搜索常数,搜索二进制
、
文本字符串 , 搜索全部命令地址 , 搜索全部常量或地址域 [ address range ] , 搜索所有能跳到
选定地址的跳转 , 搜索所有调用和被调用的函数 , 搜索所有参考字符串 , 在不同模块中搜索
所有调用、搜索函数名称,在全部已分配的内存中搜索二进制序列。如果搜索到多个结果
,
你 可以对其进行快速操作。
![](https://csdnimg.cn/release/download_crawler_static/10321412/bg4.jpg)
3
窗口 : OllyDbg 能够列出关于调试程序中的各种窗口 , 并且可以在窗口 、 类甚至选定的
消息上设置断点。
资源 : 如果 Windows API 函数使用了参考资源串 , OllyDbg 可以显示它 。 其支持显示
的类型仅限于附带资源[ attached resources ]的列表、数据显示及二进制编辑。
断点 : OllyDbg 支持各种断点 : 一般断点 、 条件断点 、 记录断点 ( 比如记录函数参数到
记录窗口 ) 、内存读写断点、硬件断点(只适用于 ME/NT/2000 )等。在 Hit 跟踪情况下 , 可
以在模块的每条命令上都设置 INT3 断点。在使用 500 — MHZ 处理器的 Windows NT 中
,
OllyDbg 每秒可以处理高达 5000 个中断。
监视与监察器 : 每个监视都是一个表达式并能实时显示表达式的值 。 你 可以使用寄存器
、
常数、地址表达式、布尔值以及任何复杂代数运算, 你 还可以比较 ASCII 和 UNICODE 字
符串 。 监察器 [ inspectors ] 是一种包含了两个的索引序列的监视 [ Watches ] , 它以二维表的
形式呈现,可以对数组和结构进行解码分析。
Heap walk. :在基于 Win95 的系统中, OllyDbg 可以列出所有的已分配的堆。
句柄:在基于 NT 的系统中, OllyDbg 可列出被调试程序的所有系统句柄。
执行: . 你 可以单步执行、步入子程序或者步过子程序。 你 也可以执行程序直到函数返
回时 、 执行到指定地址处 , 还可以自动执行 。 当程序运行时 , 你 仍然可以操纵程序并能够查
看内存、设置断点甚至修改代码。 你 也可以任意的暂停或重启被调试的程序。
Hit
Hit
Hit
Hit 跟踪: .Hit 跟踪可以显示出目前已执行的指令或函数过程,帮助 你 检验代码的各个
分支。 Hit 跟踪会在指定指令到达之前设置断点,而在这个指令执行后,会把这个断点清除
掉。 译者注: Hit 在英文中是 “ 击中 ” 的意思,指令如果运行了就表示这个指令被 “ 击中 ” 了
,
没有执行的指令就是 “ 未击中 ” , 这样我们就很容易看出被调试程序哪些部分运行了 , 而哪些
没有运行。
Run
Run
Run
Run 跟踪: Run 跟踪可以单步执行程序,它会在一个很大的循环缓冲区中模拟运行程
序。这个模拟器包含了除了 SSE 指令集以外的所以寄存器、标志、线程错误、消息、已经
函数的参数 。 你 可以保存命令 , 这样可以非常方便地调试自修改代码 ( 译者注 : 比如加壳程
序 ) 。 你 可以设置条件中断 , 条件包括地址范围 、 表达式 、 命令 。 你 可以将 Run 跟踪信息保
存到一个文件中 , 这样就可以对比两次运行的差别 。 Run 跟踪可以回溯分析已执行过的上百
万条命令的各种细节。
统计: 统计[ Profiler ]可以在跟踪时计算某些指令出现的次数。因此 你 就能了解代码
的哪一部分被频繁执行。
补丁:内置汇编器能够自动找到修改过的代码段。二进制编辑器则会以 ASCII 、
UNICODE 或者十六进制的形式同步显示修改后的数据。修改后的数据同其它数据一样 , 能
够进行复制 — 粘贴操作 。 原来的数据会自动备份 , 以便数据恢复时使用 。 你 可以把修改的部
分直接复制到执行文件中 , OllyDbg 会自动修正 。 OllyDbg 还会记录以前调试过程中使用的
所有补丁。 你 可以通过空格键实现补丁的激活或者禁止。
自解压文件: 当调试自解压文件时, 你 往往希望跳过解压部分,直接停在程序的原始
入口点 。 OllyDbg 的自解压跟踪将会使 你 实现这一目的 。 如果是加保护的自解压段 , 自解压
跟踪往往会失败 。 而一旦 OllyDbg 找到了入口点 , 它将会跳过解压部分 , 并准确的到达入口
点。
![](https://csdnimg.cn/release/download_crawler_static/10321412/bg5.jpg)
4
插件 : 你 可以把自己的插件添加到 OllyDbg 中 , 以增加新的功能 。 OllyDbg 的插件能够
访问几乎所有重要的数据的结构、能够在 OllyDbg 的窗口中添加菜单和快捷键,能够使 用
100 个以上的插件 API 函数 。 插件 API 函数有详细的说明文档 。 默认安装已经包含了两个插
件:命令行插件和书签插件。
UDD : OllyDbg 把所有程序或模块相关的信息保存至单独的文件中,并在模块重新加
载时继续使用。这些信息包括了标签、注释、断点、监视、分析数据、条件等等
更多:这里介绍的功能,仅仅是 OllyDbg 的部分功能。因为其具有如此丰富的功能 , 以
至于 OllyDbg 能成为非常方便的调试器!
剩余40页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/3eae101323f54d9ba067469d25872b53_zhwzgp123.jpg!1)
zhwzgp123
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- BSC关键绩效财务与客户指标详解
- 绘制企业战略地图:从财务到客户价值的六步法
- BSC关键绩效指标详解:财务与运营效率评估
- 手持移动数据终端:常见问题与WIFI设置指南
- 平衡计分卡(BSC):绩效管理与战略实施工具
- ESP8266智能家居控制系统设计与实现
- ESP8266在智能家居中的应用——网络家电控制系统
- BSC:平衡计分卡在绩效管理与信息技术中的应用
- 手持移动数据终端:常见问题与解决办法
- BSC模板:四大领域关键绩效指标详解(财务、客户、运营与成长)
- BSC:从绩效考核到计算机网络的关键概念
- BSC模板:四大维度关键绩效指标详解与预算达成分析
- 平衡计分卡(BSC):绩效考核与战略实施工具
- K-means聚类算法详解及其优缺点
- 平衡计分卡(BSC):从绩效考核到战略实施
- BSC:平衡计分卡与计算机网络中的应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)