OllyDBG=OllyDebug
简介
一款世界上最流行的Ring3动态调试软件.它的作者是一个德国少年.由于它对插件接口的良好支持功能得到大大增强.成为不可替代的32位调试工具.也是反病毒工程师手中利器.
版本系统支持情况
可运行在32位和64位系统.但是只支持调试32位程序,动态链接库.
官网
http://www.ollydbg.de/
什么时候需要?
无论如此,你的桌面上都应当保留它的快捷方式.
你可以用它:
1. 学习win32汇编以及X86-OpCode
2. 查看程序运行的机理
3. 寻找crack me的破解之道
4. 分析恶意程序的危害流程
5. 学习前人编程思路
6. 探究程序的优化之道
7. ……
用法
三种方法:
1. 拖一个文件进去(可以只加载不执行)
2. 打开一个文件(可以只加载不执行)
3. 附加到已经启动的进程上(有时候用来应对抵抗加载的情况).
示例
为UPX脱壳
UPX是一种程序压缩工具,能够极大地缩小程序的体积以方便程序的传输和存储.在本系列的UPX工具中将详细介绍如何使用这款工具.
恶意程序为了减少自己的体积方便自己的传播,会使用一些现成工具来压缩自身.
UPX是最常被恶意程序用到的合法工具之一.我们将演示如何手动复原一个程序.
我在考虑这个简短的教程的时候,突然警觉到这其中的漏洞,虽然我没有遇到过利用此漏洞或简单有消息称其它人利用此漏洞.但是这足以给我们的电脑造成威胁参考这里:潜藏在UPX中的隐患.如果试图重复此过程,请使用断开网络的虚拟机环境.
确定一个程序是否是UPX壳.简易而有效方案有两种:
- 将此程序拖到壳查看工具中.如果你想更详细地了解这些工具以及可以查看这两篇文章反病毒工具1:ExeInfoPE,2:PEiD
- 你也可以用手工去寻找它是UPX壳的证据,一般是有着明显的区段格式以及显著的程序结构.首先检查你的OllyDbg设置,确定我们OD设置:调试选项->事件->第一次暂停在主模块入口点.,防止危险程序跑飞.
程序入口点”pushad”:
在程序入口点处往下寻找,在这个过程中应当没有任何对具体实用函数的调用,在一片nop前如果你找到了下图的内容,表明这是一个UPX程序.
手脱UPX的四种方法
如何修复UPX壳,以及可能遇到的问题
当然你也可以使用upx的官方工具脱掉标准的它,方法是去UPX官网下载upx,用下面的命令脱壳:
upx.exe -d 带脱壳.exe
去掉-d即是加壳.
调试一个病毒,并分析它的机制
让我们找找有什么有趣的病毒可供我们分析,找到的这个名为”Bi mat”的病毒是我在一朋友U盘中找到的.
1. 用LordPE查看它的区段表.
这个病毒竟然是UPX,这么凑巧?今天的主角似乎是OD呀,咳咳,我得改改标题了
2. 脱掉它,先用UPX -d命令.
解压成功了.看来它是标准UPX.病毒作者并未对UPX做任何演示.笔者有一次遇到一个壳虽然从结构上看就是个UPX壳而且PEiD也检测出同样的结果.但是用UPX官方程序脱壳总是提示错误.后来才发现是因为UPX的区段被人改了名字不再是UPX的标准名称,所以它无法被官方程序脱掉.如你所知,我们可以使用LordPE等PE工具修正这个区段的名称即可.
3.再次将将得到的被解密的病毒原始文件拖入LordPE中.我们发现这时区段的已经非常标准.
用查看工具看看能发现一些什么信息:
Autoit是一种脚本语言类似于按键精灵.不过要更复杂,实现的功能更多.看来这种技术成了病毒载体了.
是否继续用OD去调试呢?这不是一个好主意.
1. 脚本工具会先构建它的环境然后用一些它自己的OpCode去执行病毒的需求,这个过程冗余成份很大
2. 我们在意它干了什么事,可以使用自动化沙箱病毒虚拟机查看它的结果.
如果你想亲手试试这个过程.这里是这个病毒样本的链接
http://download.csdn.net/detail/dalerkd/8764911
解压密码virus
常识:!应当在断网的虚拟机中进行调试和脱壳
拓展学习
著名翻译系列:
使用OllyDbg从零开始Cracking
注意
OD著名Ring0反反调试插件StrongOD常被反病毒软件报毒.注意甄别,别错删了.