一、OllyICE简介
OllyICE简称od,这是一款很古老的动态调试工具,在过去的许多年里,深受广大逆向程序员的喜好。但是由于些年的更新较少,并且在x64的版本上又没有大量的插件支持,所以程序员从使用od逐渐转为使用xllydbg,简称xdbg。
当然在32位版本里,od的功能还是非常强大的,因为年头久,多种多样的插件也为其舔砖加瓦,甚至达到了几乎无可取代的地位。但是站在高处就要承受压力,随着名声越来越大,用户量越来越多,针对od的保护措施也层出不穷,这也给了xdbg一些机会。
xdbg在界面和使用上和od很像,主要的功能几乎是相同的,但是一些细节上还有很多差异。由于xdbg有32位和64位两种版本,并且功能都相同,所以我们往往称其为x32dbg或者x64dbg。
下面先来看一下od的基本功能和用法,然后再到xdbg中看两者的不同在哪。
二、od的界面和基本功能
1.附加
od的版本大多是基于1.10版本进行修改的,所以虽然我们在网上下载到的od版本多种多样,但是几乎都是在1.10版本上做的处理,比如添加插件,加壳等等。
我们打开od后,在不附加任何程序时,界面大多是空白的

图中可以看到,od的主要界面分为五个部分,当我们附加一个程序后,这些窗口中才会显示信息。
首先我们点击左上角的文件

在这我们可以选择打开,或者附加。打开是打开一个还没有被执行的程序,通常这个文件是exe文件,而在下面我们也可以看到曾经打开过的程序列表。如果选择附加,则需要附加一个已经启动的程序。需要打开进程,还是附加进程,则需要根据具体的需求去选择。我们选择附加一个自己编写的小程序

附加后如下

我们点击F9运行后,在点击ALT+E来到模块列表

双击基址为00C10000的模块,跳到该模块,如果一次没有跳到,则重复以上操作
这样我们就成功的附加了一个程序。
2.查看各种窗口及信息
点击左上角的第二个选项查看

在这里面我们查看很多重要的信息
记录表示我们对xdbg进行的哪些操作,以及xdbg在运行过程中出现的各种情况,比如异常,线程终止等等,这方便我们在程序出错时去分析原因。

可执行模块就是我们刚刚点击的ALT+E,这里可以看到当前程序中的所有模块,并且可以看到这些模块的基址,大小,入口,名称等等。在任意模块上点击右键,也可以查看该模块的其他详细信息

内存则是可以看到当前程序分配的内存区域,并且可以观察到各个区域的类型及页面属性,如果我们自己用插件申请一片内存,同样会在这里显示出来

线程是查看程序线程的窗口,点击他和点击快捷按钮上的T是一个效果


本文对比了OllyICE(od)与xdbg两款动态调试工具,介绍了它们的基本功能、界面操作及调试技巧,并重点分析了两者在32位与64位程序调试方面的异同。

2913

被折叠的 条评论
为什么被折叠?



