原文链接:https://www.hackers-arise.com/post/2017/06/22/Reverse-Engineering-Malware-Part-3-IDA-Pro-Introduction
欢迎回到我的逆向工程恶意软件课程!
本课程专为那些想要登上数字取证和网络安全巅峰的人而设计。
有许多工具可用于逆向工程,但一个拆卸器是独立的。这个行业几乎每个人都在某种程度上使用IDA Pro。IDA Pro是一个反汇编程序,能够在我们没有源代码的情况下执行二进制程序,并创建映射和多种理解二进制文件的模式。它采用源代码并将其表示为汇编代码,以便我们可以更好地了解原始代码的工作原理。IDA Pro也有一个调试器,但在本课程中,我们将主要关注其反汇编功能。
IDA(Interactive Disassembly)Pro最初由Ilfak Guilfanov开发,现在由他在比利时Leige的公司Hex-Rays出售。IDA Pro有Windows版本(我们将在这里使用)以及Linux和MacOS版本。
让我们开始使用IDA吧!
步骤#1下载并安装
IDA Pro是商业软件,但您可以下载本课程的免费版本或演示/评估版本。这些版本有一些限制,例如;
(1)它们只能在x86和ARM平台上工作
(2)它们仅适用于PE / ELF / Macho-0格式
(3)您无法保存结果,可能会超时
(4)其他一些限制。
您可以在此处下载其中任何一个。
下载IDA Pro,接受许可协议,安装Python 2.7并安装Microsoft Visual C++后,IDA Pro将安装到您的系统中。它现在应该在 Windows 的“开始”按钮的程序中。找到它并单击图标。当您这样做时,IDA将启动如下屏幕。点击“新建”。
步骤 #2 加载 PE 文件
由于我们正在使用演示版本,因此我们只能使用可移植可执行(PE)文件。现在,我们可以将文件拖放到工作中心窗口中,或单击文件->打开”。
选择要反汇编和分析的文件后,将弹出以下窗口。如您所见,IDA能够自动确定文件类型(可移植可执行文件)和处理器类型(x86)。点击“确定”。
当IDA开始反汇编和分析时,它会分析整个文件并将信息放入数据库中。此数据库有四个文件:
- .id0 – 包含 B 树样式数据库的内容
- .id1 – 包含描述每个程序字节的标志
- .nam – 包含与命名程序位置相关的索引信息
- .til – 包含有关本地类型定义的信息
每当您关闭IDA时,它都会询问您是否要保存这些数据库文件。如果这样做,这四个文件将存档到单个IDB文件中。当人们提到IDA数据库时,这就是他们所指的。这些文件将被保存并随时可供您使用。您将看到这些文件保存在与要分析的文件相同的目录中。
步骤#3开始反汇编
在本实验中,我将使用作为 Acunetix Web 漏洞扫描程序一部分的小.exe文件。它不是恶意软件,但它是一个很好的初学者演示。您可以使用任何32位便携式.exe(PE),因此IDA Pro的演示版本可以对其进行反汇编。当我们打开它时,IDA Pro开始其拆卸过程,并显示如下图所示的信息。
如上所示,IDA 在“IDA 视图”选项卡中为我们提供了一些基本信息。如果我们向下滚动 IDA 视图,我们可以看到每一行代码。这是我们开始恶意软件反汇编和分析时完成大部分工作的地方。
如果我们右键单击,它将显示如下所示的窗口。请注意,我们可以在IDA视图中选择文本视图或任何其他选项。当我们在课程的后面部分开始分析时,我们将在代码 F2 中设置断点。
此 IDA 视图上方的彩色条表示文件占用的内存。它为存储在内存的每个部分中的程序的不同部分的颜色代码。如果我们右键单击内存栏的任何部分,则可以放大存储在内存中的代码段。我们能够放大到单字节级别。
通过选择任何这些可用的视图,我们可以从许多不同的角度查看文件。其中包括 IDA 视图(如此处所示)、十六进制视图、结构、枚举、导入,最后是导出。通过单击这些选项卡中的任何一个,它将为我们提供代码的特定视图(请参阅下面的步骤5中的导入)。
IDA能为我们提供的最有趣、最有启发性的观点之一就是流程图。流程图以图形方式显示文件执行的流程,使其更易于理解。我们可以通过转到顶部菜单栏并单击“查看”->图形->流程图“来打开它。它将打开类似于下面的代码的流程图。
我们可以通过转到流程图顶部的“视图”菜单来放大,以获取更多详细信息。通过这种方式,我们可以查看来自每个寄存器,子例程和函数的程序流。
步骤 5:显示导入
当我们选择“导入”视图时,IDA将向我们显示.exe导入的所有模块。这些导入可以为我们提供有关恶意软件来源的线索。
步骤 6:自定义分析
最后,我们可以通过转到选项->常规来开始自定义IDA显示代码的内容和方式。下面屏幕截图中显示的窗口将使我们能够自定义分析。
虽然这远未对IDA Pro进行完整而彻底的介绍,但我们已准备好使用IDA Pro进行一些恶意软件分析!我将在整个课程中根据需要介绍其他概念和技术。
在继续之前,我认为向您介绍IDA Pro中的一些关键命令和快捷键是很有用的。
另外,请查找完整的IDA Pro快速参考表,由 www.datarescue.com(IDA Pro的原始销售和营销公司)的优秀人员提供。