常用逆向分析工具

  所谓工欲善其事,必先利其器。学习逆向分析当然离不开那些强大的逆向分析工具。在使用这些工具时,我们应该心怀感激,感谢那些前辈们开发出这么多方便实用的工具,如果没有这些工具,我们在分析一个软件时需要面临的麻烦要比现在多得多,吃水不忘挖井人,我们要明白我们是站在巨人的肩旁上的。

调试器

  调试器不是逆向分析人员的专用工具,调试器原本是软件开发人员用于调试程序,修补BUG的。但是其优秀的特性导致被大量用于逆向分析工作,是逆向分析中不可或缺的工具。调试器分为两类,用户级调试器和内核级调试器。

用户级调试器

  用户级调试器,是运行在用户模式的调试工具,它可以将自己附加在另一个进程上,从而完全控制该进程。用户级调试器安装与使用都十分简单,因为它本质上是一个应用程序,所以使用和安装都与正常的软件一样,也拥有十分友好的使用界面和强大辅助插件。而它的缺点也在于此,因为运行在操作系统上,所以无法调试运行在内核模式中的代码,而且一次只能调试一个进程。下面只介绍下OD。

  OllyDbg是Oleh Yuschuk编写的专门用于逆向分析的用户级调试工具。强大的功能和友好的用户界面使其成为了在用户模式下进行逆向工作的最佳工具,也是新手入门的最合适工具。可惜的是OD现在已经停止了更新,所以只能调试32位程序,且运行在Windows平台。不过国内对OD进行了很多改造,比如支持64位,或者添加了实用的小插件等。

OD用户界面

  OD用户界面提供了四个视图,分别是反汇编代码视图、寄存器视图、内存视图以及栈视图。反汇编代码视图显示了经过OD强大反汇编器反汇编后的汇编代码;寄存器视图实时显示当前寄存器中的值;内存视图动态显示当前内存中数据;栈视图会根据代码运行动态显示当前栈的所有情况。

  OD还提供了许多方便的快捷键,来帮助逆向分析人员提高工作效率。比如:

  • F2:下软断点

  • F4:运行到光标处指令

  • F7:单步跟进

  • F8:单步跳过

  • F9:运行代码

  • Ctrl+F2:重新加载进程

OD有很多快捷键,这里就不一一列举了。

内核级调试器

  内核级调试器,是运行在内核模式下的调试工具。与用户级调试器不同,内核级调试器是运行在操作系统一级的,所以它可以调试操作系统,其强大的调试能力不需多说。常用的内核级调试器是WinDbg。

  WinDbg是Microsoft免费提供的GUI内核级调试器,它不仅可以调试应用程序,也可以调试驱动和操作系统。虽然WinDbg是一个GUI程序,但是其用户界面和OD比起来真的是太不又好了,而且大多数调试操作都是使用命令来操作,对于新手来说十分的不方便。不过与其他内核级调试器相比,其用户界面已经算友好的,而且因其强大的调适能力,命令操作也可以接受。新手对于WinDbg可能无法接受,但其本身也不是给新手使用的调试器。

  和OD相比,WinDbg的反汇编能力十分有限,经常会出现许多意想不到的异常问题,但是WinDbg与操作系统的集成性是无与伦比的,它可以向用户提供系统的许多内部数据结构,比如进程环境块、线程环境块等。在这方面OD是无法与WinDbg相比的。

反汇编工具

  对于反汇编工具,主要用于程序的静态分析技术,反汇编工具对程序的机器码进行反汇编,得到程序的汇编代码并添加许多符号与标识,方便分析人员分析程序代码。这类工具只介绍一个常用的,即IDA Pro。

  IDA Pro是Hex-Rayd公司的一款产品,是现在世界上公认最好的反汇编工具。IDA Pro拥有目前最好的反汇编器,其不仅可以准确的反汇编出程序的汇编代码,还可以识别出数据的类型,调用的函数,使用的数据结构等,并根据程序的跳转勾画出程序的地图。IDA Pro是一款商业软件,如果你十分喜欢IDA Pro,并决心从事逆向分析工作,那么你可以区购买一份属于自己的正版IDA Pro。

IDA用户界面

猜你喜欢

转载自www.cnblogs.com/Roachs/p/9365223.html