You are on page 1of 10

2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

首发于
嘶吼RoarTalk

工具推荐:逆向破解利器OllyDbg
嘶吼Roar…
网络安全观察者

96 人赞同了该文章

之所以要进行逆向破解,其原因之一就是通过逆向工程可以了解恶意软件的工作原理并有可能对其
功能进行重新设计,比如中情局和国家安全局等机构定期会将恶意软件重新用于其他目的。

由于IDA Pro是目前最棒的一个静态反编译软件,是众多安全分析人士不可缺少的利器,所以我在
以前专门介绍过IDA Pro的一些用法。但在本文中,我将介绍OllyDbg,它和DA Pro一样,目前也
被安全分析人士广泛使用,且是免费的。

OllyDbg是一个新的动态追踪工具,是将IDA与SoftICE结合起来的产物,Ring 3级调试器,非常
容易上手,另外由于OllyDbg是一个通用的32位汇编分析调试器且操作界面非常直观简单,己代替
SoftICE成为当今最为流行的调试解密工具了。同时OllyDbg还支持插件扩展功能,是目前最强大
的调试工具。

如果你正在使用Kali linux,则你的系统上则很可能已经预装了OllyDbg。OllyDbg可以在任何
Windows或Linux环境中运行,要说明的是,实际上OllyDbg是在Linux的WINE中运行。如果你的
系统上没有OllyDbg,你可以在这里下载http:或或ollydbg.de或download.htm。

步骤1:启动OllyDbg

要在Kali中启动OllyDbg,请点击Applications,然后进入Reverse Engineering,最后找到
ollydbg,如下面所示。

https://zhuanlan.zhihu.com/p/30015518 1/10
2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

首发于
嘶吼RoarTalk

这样,你就会打开一个如下所示的界面。请注意,OllyDbg的界面顶部具有下拉菜单系统。

步骤2:将文件加载到OllyDbg中

下一步是将.exe文件加载到Ollydbg中,你可以将文件直接拖放到Olly的工作区域中,或使用顶部
的下拉菜单的“文件”菜单,然后选择“打开”。请注意,打开窗口必须是可执行文件。

https://zhuanlan.zhihu.com/p/30015518 2/10
2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

首发于
嘶吼RoarTalk

当文件打开时,Ollydbg就将开始分析代码。不过此时,我会使用一个简单的.exe,它预装在名为
LaunchU3.exe的闪存驱动器上,仅用于演示。显然,这不是恶意软件。在将来的教程中,我将同
时使用恶意软件和非恶意软件进行调试和分析。

如下图所示,Olly将代码分析过程分成几个窗口来进行。在窗口中的左上角,我会发出虚拟地址的
指令。然后在CPU registers窗口中(右上角窗口中),我会将数据驻留在内存中。最后在右下方
窗口中,我会得到一个栈的窗口。另外请注意,在右下角(黄色突出显示的部分)表示目前目前我
所处的栈的状态,比如下图,我就处于“暂停”状态。

步骤3:不同视图下的代码

我可以通过点击顶部菜单上的查看按钮来从不同视图获取我的代码:

https://zhuanlan.zhihu.com/p/30015518 3/10
2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

首发于
嘶吼RoarTalk

从上图可以看到,打开进程日志的快捷键为"Alt+L",可执行文件的快捷键为"Alt+E",内存布局的
快捷键为"Alt+M",窗口,控键及其断的快捷键为"Alt+B"。请注意,菜单栏上的蓝色字母也可以
表示每一个功能的快捷操作。

如果我选择可执行模块"Alt+E"或蓝色字母"E",我都可以打开一个包含所有可执行文件的窗口,如
下图所示。可执行模块窗口会将基本虚拟地址(base virtual address)显示在第一列,而内存中
的二进制文件的虚拟大小会在第二列显示,入口点的虚拟地址会在第三列中显示,从第四列到第六
列分别是模块名称,文件版本和进程中加载的每个模块的文件路径。如果文本显示为红色,则表示
模块已被动态加载。

不过在可执行文件窗口中,我可以通过单击右键,然后找出相关窗口比如“查看名称”的窗口。

https://zhuanlan.zhihu.com/p/30015518 4/10
2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

首发于
嘶吼RoarTalk

这样,我就可以看到程序中使用的所有函数和导入的函数。我也可以使用Ctrl+N访问此窗口。通
过检查可执行文件的导入功能,我可以经常对恶意软件的功能进行分析。我建议大家可以查看
Microsoft的MSDN API文档网站,这是一个很有用的资源,用于了解这些函数,参数以及返回函
数的功能。

在“名称”窗口中,如果我单击右键,就可以通过单击或直接按F2来设置断点。

https://zhuanlan.zhihu.com/p/30015518 5/10
2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

首发于
嘶吼RoarTalk

OllyDbg的内存映射窗口显示了进程中每个分配的内存区域的虚拟地址,虚拟大小,所有者模块,
段名称,内存分配类型和内存保护。

OllyDbg的线程窗口会显示线程ID,入口点虚拟地址,线程环境块(TEB)虚拟地址,last-error
值,例如活动或挂起的优先级状态以及进程中每个线程的时序信息。

Windows窗口会显示进程拥有的每个窗口的控键,标题,父窗口,窗口ID,窗口样式和窗口类信
息。

https://zhuanlan.zhihu.com/p/30015518 6/10
2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

首发于
嘶吼RoarTalk

“控键”窗口会显示对象类型,引用计数,访问标志以及进程拥有的每个控键的对象名称。

SEH(结构化异常处理程序)链接窗口会显示当前线程的结构化异常处理程序函数。

断点

任何一个好用的调试器,其必备的关键特点就是能够设置断点。断点使我能够以指定的地址或指令
停止程序的执行。目前有两种主要类型的断点方式:软件断点和硬件断点。OllyDbg提供了一种通
过使用"Alt+B"的断点窗口来查看和打开断点的方法。

https://zhuanlan.zhihu.com/p/30015518 7/10
2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

首发于
嘶吼RoarTalk
OllyDbg常用快捷键

用户界面

打开新程序 F3

关闭程序 Alt+F2

最大化或恢复活动窗口 F5

使OllyDbg最上面的窗口 Alt+F5

关闭OllyDbg Alt+X

Windows

打开断点窗口 Alt+B

打开CPU窗口 Alt+C

打开模块窗口 Alt+E

打开日志窗口 Alt+L

打开内存窗口 Alt+M

编辑

编辑内存 Ctrl+

组合 Space

撤消更改 Alt+BkSp

执行

进入 F7

设置动画 Ctrl+F7

单步执行 F8

设置动画结束 Ctrl+F8

运行应用程序 F9

传递异常处理程序并运行 Shift+F9

执行直到返回 Ctrl+F9

执行到用户代码 Alt+F9

跟踪开始 Ctrl+F11

跟踪结束 Ctrl+F12

暂停 F12

暂停跟踪条件 Ctrl+T

断点

设置或取消设置断点 F2

设置或编辑条件断点 Shift+F2

设置或编辑条件日志断点 Shift+F4

临时禁用或恢复BP Space

数据

分析可执行代码 Ctrl+A

扫描对象文件 Ctrl+O

显示符号名称 Ctrl+N

搜索

搜索二进制 Ctrl+B

搜索命令 Ctrl+F

重复上一次搜索 Ctrl+L

https://zhuanlan.zhihu.com/p/30015518 8/10
2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

你可以点击www.ollydbg.de,完整查看快捷方式列表。
首发于
嘶吼RoarTalk
本文翻译自:hackers-arise.com/singl... ,如若转载,请注明原文地址:
4hou.com/tools/7890.htm... 更多内容请关注“嘶吼专业版”——Pro4hou

编辑于 2017-10-11 11:10

信息安全

赞同 96 ​ ​ 15 条评论 ​ 分享 ​ 喜欢 ​ 收藏 ​ 申请转载 ​

文章被以下专栏收录

嘶吼RoarTalk
回归最本质的信息安全。

推荐阅读

那些年病毒用过的损招——攻 一个强大的反汇编工具IDA Pro 逆向分析——使用IDA动态调试


击反汇编 WanaCrypt0r中的…
一个强大的反汇编工具IDA Pro最近
这次的标题真tm的绕口,反反汇 因为做一些反向工作,所以熟悉了 0x00 前言2017年5月12日全球爆发
编,还是叫攻击反汇编好听。攻击 这个IDA Pro软件,其实就是反汇 大规模蠕虫勒索软件WanaCrypt0r
反汇编其实就是在程序中使用一段 编,把library下的.a文件重新生成.c 感染事件,各大厂商对该软件做了
特殊构造的代码或者数据,让反汇 文件代码,然后盲测改成差不多符 深入分析,但针对初学者的分析教
编分析工具产生错误的程序代码列 合规范的C语言代码。 说… 程还比较少,复现过程需要解决的
表,这种代码一般都是手写的,… 问题有很多,而且没有文章具…
e1knot 李肖遥 发表于技术让梦想... 嘶吼Roa... 发表于嘶吼Roa...

15 条评论 ​ 切换为时间排序

写下你的评论...

andor.texi 2017-10-15

今年是2006年?我穿越了?
2

周小贱 2017-10-11

7102年了,还在OD
6

书生意气 回复 周小贱 2017-10-11

那应该用什么?
1

知乎用户 回复 书生意气 2020-10-06

x64dbg不错

魔群月光 2017-10-12

有个od的继承者,叫x64dbg,长得和od差不多
1

https://zhuanlan.zhihu.com/p/30015518 9/10
2022/5/17 下午11:19 工具推荐:逆向破解利器OllyDbg - 知乎

首发于
知乎用户 嘶吼RoarTalk 2018-01-27

MARK

知乎用户 2017-10-12

为什么2017年了,还要用od?

yang leonier 2017-10-11

od2虽然集成了很多老od插件的功能,比裸体老od不知高到哪里去了,但老od的很多插件
od2还是没有。另外,od2原生支持64位记得。

yang leonier 2017-10-11

od2虽然集成了很多老od插件的功能,比裸体老od不知高到哪里去了,但老od的很多插件
od2还是没有。另外,od2原生支持64位记得。

yang leonier 2017-10-11

od2虽然集成了很多老od插件的功能,比裸体老od不知高到哪里去了,但老od的很多插件
od2还是没有。另外,od2原生支持64位记得。

yang leonier 2017-10-11

od2虽然集成了很多老od插件的功能,比裸体老od不知高到哪里去了,但老od的很多插件
od2还是没有。另外,od2原生支持64位记得。

yang leonier 2017-10-11

od2虽然集成了很多老od插件的功能,比裸体老od不知高到哪里去了,但老od的很多插件
od2还是没有。另外,od2原生支持64位记得。

yang leonier 2017-10-11

od2虽然集成了很多老od插件的功能,比裸体老od不知高到哪里去了,但老od的很多插件
od2还是没有。另外,od2原生支持64位记得。

name ttang 2017-10-11

64位的天下了,od还能用多久?

知乎用户 回复 name ttang 2021-02-20

2021 还在用 Ollydbg x64

https://zhuanlan.zhihu.com/p/30015518 10/10

You might also like