天天看点

恶意软件逆向工程:Ghidra 入门 -第一部分

作者:资阳花街

在逆向工程领域有许多优秀的工具可以使用(比如IDA Pro和OllyDbg),但现在我们有一个新的选择-Ghidra。Ghidra是由美国国家安全局(美国主要的间谍机构,负责开发Stuxnet恶意软件和EternalBlue的机构)开发的,是世界上顶级的间谍机构之一。

恶意软件逆向工程:Ghidra 入门 -第一部分

我们第一次知道Ghidra是在2017年的维基解密Vault 7泄密事件中,它在2019年春天作为免费和开源(根据Apache许可证)软件发布。它是一个优秀的逆向工程工具,与IDA Pro不同,它是免费的!

Ghidra几乎具有Ida Pro的所有功能,所以如果你从事逆向工程,Ghidra是一个很好的选择。

#下载Ghidra

你可以从官网下载:https://ghidra-sre.org/,由于它是用Java编写的,所以几乎所有的平台都可以使用,包括Windows、Mac OS和Linux。这里以Windows 10来演示Ghidra。

由于Ghidra是一个Java应用程序,需要JDK 11以上版本。JDK请从Oracle下载安装。

#启动Ghidra

下载并解压后,通过双击ghidraRun.bat来启动它

恶意软件逆向工程:Ghidra 入门 -第一部分

同意协议

恶意软件逆向工程:Ghidra 入门 -第一部分
恶意软件逆向工程:Ghidra 入门 -第一部分

然后显示这个窗口,开始你的第一个项目。项目类似于文件夹,可以包含你正在处理的多个文件。

恶意软件逆向工程:Ghidra 入门 -第一部分

点击"File"-->"New Project" 新建项目

恶意软件逆向工程:Ghidra 入门 -第一部分

这将打开一个像下面这样的窗口。Ghidra的一个特点是能够在一个文件或项目上进行协作。在这种情况下,点击 "Shared Project"。在这里,我们不需要共享,所以选择 "No-Shared Project"。然后点击 "Next"。

恶意软件逆向工程:Ghidra 入门 -第一部分

选择项目保存位置和输入项目名字,点"Finish"。

恶意软件逆向工程:Ghidra 入门 -第一部分
恶意软件逆向工程:Ghidra 入门 -第一部分

接下来,我们需要导入一个文件。这是你要分析的软件或恶意软件。"File" -->"Import File"。

恶意软件逆向工程:Ghidra 入门 -第一部分

选择要导入的二进制文件,然后导入

恶意软件逆向工程:Ghidra 入门 -第一部分

选择导入后,Ghidra会提示文件的基本信息,然后点"OK"

恶意软件逆向工程:Ghidra 入门 -第一部分

然后,Ghidra会显示一个像下面这样的窗口,显示有关该文件的关键信息。

恶意软件逆向工程:Ghidra 入门 -第一部分

接下来,会显示你的项目和导入的文件。你可以双击文件或将文件拖到上面的绿色Ghidra龙图标上开始进行分析。

恶意软件逆向工程:Ghidra 入门 -第一部分

然后Ghidra开始工作。它在中心列表窗口显示程序的汇编代码,然后询问你是否要分析该文件。点击 "Yes"。

恶意软件逆向工程:Ghidra 入门 -第一部分
恶意软件逆向工程:Ghidra 入门 -第一部分

Ghidra将分析你的文件,并显示类似于下面四个窗口的信息。

恶意软件逆向工程:Ghidra 入门 -第一部分

窗口1是符号树(Symbol Tree)

此窗口允许你查看二进制文件的导入、导出、函数、标签、类和命名空间。

窗口2是列表窗口

这个窗口显示的是汇编语言的代码分解

窗口3 是反编译器窗口

反编译器使你能够看到高级语言可能会是什么样子

窗口4是数据类型管理器窗口

数据类型管理器允许你查看所有已定义的数据类型。

现在,你已经准备好并可以开始分析和逆向这个文件了!

#本节概括

恶意软件逆向工程是网络安全学科中最高水平的技能之一,也是收入最高的技能之一。 Ghidra是一款出色的逆向工程工具,几乎可以在任何平台上运行,而且性价比非常高(免费)。在这个逆向工程系列中,我们将使用这个来自美国国家安全局的工具对多个恶意软件进行逆向工程,从简到难。

继续阅读