网络安全编程:逆向调试分析工具之OllyDbg
在逆向分析中,调试工具可以说是非常重要的。调试器能够跟踪一个进程的运行时状态,在逆向中称为动态分析工具。动态调试会用在很多方面,比如漏洞的挖掘、游戏外挂的分析、软件加密解密等方面。本文介绍应用层下最流行的调试工具OllyDbg。
OllyDbg缩写为OD,是由一款具有可视化界面的运行在应用层(或者R3)的一款32位的反汇编逆向调试分析工具。OD是所有做逆向分析者都离不开的工具。它的流行,究其原因,是操作简单、参考文档相当丰富、支持插件功能。
1. OD的版本
OD的主流版本是1.10,但是它存在很多修改版。OD虽然是动态调试工具,但是由于其强大的功能经常被很多人用在软件破解等方面,很多软件作者的心血被付诸东流。软件的作者为了防止软件被OD调试,加入了很多防止OD进行调试的反调试功能来保护自己的软件不被破解;而破解者为了能够继续使用OD来破解软件,则不得不对OD进行修改,从而达到反反调试的效果。
调试、反调试、反反调试,对于新接触调试的爱好者来说容易混淆。简单来说,反调试是阻止使用OD进行调试,而反反调试是突破反调试继续进行调试。而OD的修改版本之所以很多,就是为了能够更好地突破软件的反调试。从OD存在着众多的修改版本可以看出,软件的保护与软件的破解一直在进行着“攻”和“防”的突破当中。
因此,如果从学习的角度来讲,建议选择原版的OD进行使用。在使用的过程中,除了会掌握很多调试的技巧,也会学到很多反调试的技巧,从而掌握反反调试的技巧。而如果在实际的应用中,则可以直接使用修改版的OD,避免OD被软件反调试,从而提高逆向调试分析的速度。
2. OD主界面
OD的发行是一个压缩包,解压即可运行使用。运行OD解压目录中的ollydbg.exe程序,会出现一个分布恰当、有菜单有版面和能输入命令的一个看似强大的软件窗口,如图1所示。
图1 OD调试主界面
在图1中,工作区可以分为6部分,从左往右、从上往下,这6部分分别是反汇编窗口、信息窗口、数据窗口、寄存器窗口、栈窗口和命令窗口。下面分别介绍各个窗口的用法。
反汇编窗口:该窗口用于显示反汇编代码,调试分析程序主要就是在这个窗口中进行,这也是进行调试分析的主要工作窗口。
信息窗口:该窗口用于显示与反汇编窗口上下文相关的内存或寄存器信息。
数据窗口:该窗口用于以多种格式显示内存中的内容,可以使用的格式有Hex、文本、短型、长型、浮点和反汇编等。
寄存器窗口:该窗口用于显示各个寄存器的内容,包括前面介绍的通用寄存器、段寄存器、标志寄存器、浮点寄存器,另外,还可以在寄存器窗口中的右键菜单选择显示MMX寄存器、3DNow!寄存器和调试寄存器。
栈窗口:该窗口用于显示堆栈内容,即ESP寄存器和EBP寄存器指向的地址部分。
命令窗口:该窗口用于输入命令来简化调试分析的工作,该窗口并非基本窗口,而是由OD的插件提供的功能,几乎所有的OD使用者都会使用该控件,因此必须掌握该窗口的使用。
3. OD功能窗口
OD中的主窗口是OD众多窗口中的一个,主要是用来显示CPU相关内容的窗口,主窗口也被称为CPU窗口。除了CPU窗口外,OD还有功能非常多的其他窗口。可以通过菜单栏的“查看(V)”项目打开这些窗口进行使用,或者通过工具栏上的“窗口切换”工具来选择使用不同的功能窗口。工具栏的“窗口切换”如图2所示。
图2 “窗口切换”选项工具栏
(1)“内存”窗口
“内存”窗口显示了程序各个模块节区在内存中的地址,如图3所示。
图3 “内存”窗口
在内存窗口中,可以用鼠标选中某个模块的节区,然后按下F2键来下断点。一旦代码访问到这个段,OD就会相应断点断下。
(2)“调用堆栈”窗口
“调用堆栈”用来显示当前代码所属函数的调用关系。“调用堆栈”窗口如图4所示。
图4 “调用堆栈”窗口
从图4中第1行信息可以看出,当前代码所在的函数首地址是NOTEPAD模块中的010040BA地址处,调用该函数的位置来自于NOTEPAD.010045CA,而NOTEPAD.010045CA函数所在的函数首地址需要从第3行中查看,该函数的首地址是NOTEPAD.01004565。其调用关系模拟如下:
各个调用关系之间的Arg1、Arg2是由调用方函数传递给被调用方的函数参数。调用栈的结构类似于栈的结构,都是由高往低方向延伸。在调用栈窗口中越靠下的函数,其栈地址越高,函数之间的调用关系也是由下往上的。
(3)“断点”窗口
“断点”窗口显示了设置的所有的软断点,如图5所示。
图5 “断点”窗口
从图5中可以看出,设定了3条软断点,设置断点的地址从图5的第1列可以查看。如果在API函数的首地址上设定断点,那么在地址后会给出API函数的名称。设置好的断点如果不想使用,可以进行删除;如果暂时不想使用,则可以通过使用空格键来切换其是否激活的状态。
4. 常用断点的设置方法
在OD中,常用的设置断点的方法有命令法、菜单法和快捷键法。无论通过哪种方法设置断点,其实断点的类型不外乎有3种,分别是INT3断点、内存断点和硬件断点。
(1)通过命令设置断点
通过命令可以设置硬件断点和INT3断点。设置INT3断点的方法较为简单,直接在命令窗口输入“bp断点地址”或“bpAPI函数名称”即可。设置好以后,可以通过断点窗口查看设置好的断点。
关于硬件断点,这里介绍4条命令,具体如下。
① hr:硬件读断点,如hr 断点地址。
② hw:硬件写断点,如hw 断点地址。
③ he:硬件执行断点,如he 断点地址。
④ hd:删除硬件断点,如hd 断点地址。
硬件断点最多只能设置4个,这是跟CPU相关的。可以用于设置断点的调试寄存器只有4个,分别是DR0、DR1、DR2和DR3。通过命令设置好硬件断点后,可以在菜单的“调试(D)”项中打开“硬件断点(H)”,查看设置好的硬件断点,如图6所示。
6 硬件断点图
(2)通过快捷键设置断点
通过快捷键设置断点的方法非常简单,在需要设置断点的代码行处按下F2键即可设置一个INT3断点,在设置好的INT3断点处再次按下F2键即可取消设置好的断点。
除了可以在代码处通过F2键设置断点外,还可以在内存窗口中,在指定的节上按下F2键来设置断点。这里设置的断点是一次性断点,即断点被触发后设置的断点自动被删除。
(3)通过菜单设置断点
通过菜单设置断点的方法比较简单,如图7所示。
图7 通过菜单设置断点
在菜单中可以看到设置内存断点的选项,分别是“内存访问”和“内存写入”。内存断点通常对数据部分设置断点,如果要找到某块内存中数据是由哪块代码进行处理的,通过设置内存断点可以很容易找到。
对于动态调试分析来说,合理设置断点非常重要。在OD中,有很多设置断点的方法和技巧,请大家在使用和学习的过程中慢慢学习和摸索。
5. OD调试快捷键
① F8键:单步步过,依次执行每一条代码,遇到CALL不进入,遇到REP不重复。
② F7键:单步步入,依次执行每一条代码,遇到CALL则进入,遇到REP则重复。
③ F4 键:执行到功能的代码处(前提条件是选中的代码在程序的流程中一定会被执行到)。
④ F9键:运行程序,直到遇到断点才停止。
⑤ Ctrl+F9组合键:返回调用处(在win7及更高的版本的操作系统下,该快捷键失灵了)。
⑥ Alt+F9组合键:执行到函数的结尾处。
推荐系统
windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载
语言:中文版系统大小:5.31GB系统类型:Win11windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化
微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载
语言:中文版系统大小:5.31GB系统类型:Win11微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载
微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件
语言:中文版系统大小:0MB系统类型:Win11微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为
雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载
语言:中文版系统大小:4.75GB系统类型:雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统
雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO
语言:中文版系统大小:5.91GB系统类型:Win7雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户
番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载
语言:中文版系统大小:3.91GB系统类型:Win7欢迎使用 番茄花园 Ghost Win7 x64 SP1 2022.07 极速装机版 专业装机版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计。是电脑城、个人、公司快速装机之首选!拥有此系统
番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10番茄花园 Windows 10 32位极速企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活
新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10新萝卜家园电脑城专用系统 Windows10 x86企业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程
相关文章
- MD5哈希漏洞成为高危Web安全漏洞
- Google 推出新的漏洞悬赏平台,统一管理 Android、Chrome 等悬赏计划
- 钓鱼邮件新形式,黑客利用特朗普传播钓鱼邮件,诱骗用户下载后门
- 卡巴斯基监测全球恶意文件数量增长5%
- HSRP(热备份路由器协议)的详细介绍
- 保护业务数据以免发生数据泄露的3个提示
- php包含漏洞替代技术的方法与介绍 php文件包含漏洞详解
- 勒索软件攻击了一家德国医院,并导致患者死亡
- 微软发高危公告:警惕LemonDuck恶意软件攻击
- Linux再次被爆root提权漏洞,已存在长达15年之久!
- Grand View Research:到2028年,网络安全服务市场规模达192.7亿美元
- 专栏
- 三年不重装 令Windows百毒不侵13妙招
- 数据库安全优秀实践十项
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 3电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 4雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
- 1迅雷云播“手机看片神器”使用教程(随时随地秒速离线云播放)
- 2微信公众号怎么年审? 微信公众号年审流程及所需材料介绍
- 3Win10怎么设置网络按流量计费 Win10网络设置流量收费教程
- 4i7 6700主频是多少 i7-6700参数详解
- 5Steam提示“需要在线进行更新,请确认您的网络连接正常”怎么办?
- 6win7蓝屏代码7f指什 怎么解决 很严重
- 7安卓手机安装运行win7系统教程 安卓手机装win7系统教程
- 8华硕b460主板装win7系统及bios设置教程 10代CPU安装Win7教程 BIOS设置 U盘启动 完美支持USB驱动
- 9aoc一体机电脑win10改win7系统及bios设置
- 10高通骁龙8cx怎么样 高通骁龙8cx处理器详细介绍
常用系统
- 1深度技术 Windows 10 x64 企业版 电脑城装机版2021年2月(64位) 高速下载
- 2番茄花园Ghost Win8.1 x64 办公纯净版2021年11月(激活版) ISO镜像高速下载
- 3番茄花园Ghost Win8.1 x64 办公纯净版2021年4月(激活版) ISO镜像高速下载
- 4电脑公司 装机专用系统Windows10 x86六一节 企业版2020年6月(32位) ISO镜像快速下载
- 5深度技术Ghost Win8.1 x32位 特别纯净版2020年2月(免激活) ISO镜像高速下载
- 6新萝卜家园 GhostWin7 SP1 电脑城极速稳定版2020年2月(32位) ISO镜像高速下载
- 7番茄花园 Windows 10 官方企业版 2019年4月(64位) 提供下载
- 8电脑公司 GhostXpSp3 电脑城装机版 2020年11月 ISO镜像高速下载
- 9华硕笔记本&台式机专用系统 海量驱动 GHOSTXPSP3 2018年7月 ISO镜像下载
- 10新雨林木风 Windows10 x86 企业装机版2019年6月(32位) ISO镜像高速下载