ghidra2frida

ghidra2frida 是一个 Ghidra 扩展,它充当 Ghidra 和 Frida 之间的桥梁,让您可以创建强大的 Ghidra 脚本,利用 Frida 的动态分析引擎来增强 Ghidra 的静态分析功能。它支持所有 Frida 支持的平台(Windows、macOS、Linux、iOS、Android 和 QNX)。
该插件基于 Brida 的理念(和代码)。ghidra2frida 本身是一个扩展,为 Ghidra 添加了一个控制面板,其中包含创建 Ghidra 和 Frida 之间桥梁所需的所有工具。当桥梁建立后,会为 Ghidra 脚本和扩展提供服务,只需几行代码即可利用 Frida 强大的动态检测功能,满足您的各种需求。
一些示例:
- 在分析 iOS 二进制文件时还原 SWIFT 函数名(作为示例提供)
- 编写一个 Ghidra 分析器,利用在二进制文件的一次或多次运行中通过 Frida 获取的动态信息来分析二进制文件
- 通过调用目标二进制文件在目标平台上使用的解密函数,解密二进制文件中的加密部分(如字符串等)
该工具的教程可以在我们公司的博客中找到。
要求
要使用 ghidra2frida,您需要:
- Ghidra
- Frida 客户端
- Pyro4
- 一个待分析的应用程序!:D
从 GitHub 安装
- 安装 Python 2.7 或 Python 3、Pyro4(pip install pyro4)和 frida(pip install frida)。完全支持 Python 虚拟环境。
- 下载 Ghidra:https://github.com/NationalSecurityAgency/ghidra/releases
- 下载 ghidra2frida 的最新版本:https://github.com/federicodotta/ghidra2frida/releases
- 打开 Ghidra -> 文件(File)-> 安装扩展(Install Extensions)-> 点击“添加扩展”(Add extension)按钮 -> 选择 ghidra2fridaXX.zip 文件
- 重启 Ghidra
构建
您可以使用 GhidraDev Eclipse 插件将项目导入 Eclipse,也可以按照以下步骤手动使用 Gradle 构建插件(我使用的是 Gradle 7.1.1):
- 进入项目文件夹
- 导出 GHIDRA_INSTALL_DIR=<PATH_GHIDRA_DIRECTORY>
- gradle
- 编译后的插件位于 dist 文件夹中