MASTG-TOOL-0033: Ghidra

Ghidra 是由美国国家安全局 (NSA) 研究理事会开发的一套开源软件逆向工程 (SRE) 工具。 Ghidra 是一款多功能工具,包含反汇编器、反编译器和内置脚本引擎,可用于高级用途。 请参阅安装指南了解如何安装它,并查看速查表,初步了解可用命令和快捷方式。 在本节中,我们将逐步介绍如何创建一个项目、查看二进制文件的反汇编和反编译代码。

使用 ghidraRun (*nix) 或 ghidraRun.bat (Windows) 启动 Ghidra,具体取决于您所使用的平台。 启动 Ghidra 后,通过指定项目目录创建一个新项目。 您将看到如下所示的窗口

在新的活动项目中,您可以通过转到文件 -> 导入文件并选择所需文件来导入应用程序二进制文件。

如果该文件可以被正确处理,Ghidra 将在开始分析之前显示有关该二进制文件的元信息。

要获取上面选择的二进制文件的反汇编代码,请双击活动项目窗口中导入的文件。 单击分析,以便在后续窗口上进行自动分析。 自动分析将花费一些时间,具体取决于二进制文件的大小,进度可以在代码浏览器窗口的右下角跟踪。 自动分析完成后,您可以开始浏览该二进制文件。

在 Ghidra 中探索二进制文件最重要的窗口是 Listing(反汇编)窗口、Symbol Tree(符号树)窗口和 Decompiler(反编译器)窗口,该窗口显示所选函数的反编译版本以进行反汇编。 Display Function Graph(显示函数图)选项显示所选函数的控制流图。

Ghidra 中还有许多其他可用功能,可以通过打开窗口菜单来探索其中的大多数功能。 例如,如果您想检查二进制文件中存在的字符串,请打开Defined Strings(定义的字符串)选项。 在接下来的章节中,我们将在分析 Android 和 iOS 平台的各种二进制文件时讨论其他高级功能。