Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
kaiju — CERT Kaiju 是 Ghidra 软件逆向工程套件的二进制分析框架扩展。此仓库是一个“镜像”——请在上游仓库 @CERTCC 提交工单、错误报告或拉取请求:https://github.com/certcc/kaiju | Kitploit
工具/GitHubGitHub/cmu-sei/kaiju
静态分析逆向工程恶意软件分析二进制分析固件分析
GitHubcmu-sei/kaiju

kaiju

CERT Kaiju 是 Ghidra 软件逆向工程套件的二进制分析框架扩展。此仓库是一个“镜像”——请在上游仓库 @CERTCC 提交工单、错误报告或拉取请求:https://github.com/certcc/kaiju

查看仓库
1443936个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Dynamic YAML Badge release_on_tag Badge run_tests_on_push_pr Badge

CERT Kaiju 二进制分析框架(用于 GHIDRA)

CERT Kaiju 是一个为 Ghidra 开发的二进制分析工具集合。

该工具是 CERT Pharos 二进制分析框架 部分功能的 Ghidra/Java 实现,特别是函数哈希与恶意软件分析工具,但未来预计会扩展新的工具和能力。

由于这是一个新的尝试,该实现尚未完全达到基于 ROSE 的原始 C++ 实现的功能对等;然而,转向 Java 和 Ghidra 实际上启用了一些原始框架无法实现的新功能——特别是对非 x86 架构的更好支持。由于框架和工具正在进行重大重构,且转向 Java 和 Ghidra 所支持的能力与 C++ 实现不同,因此决定采用新品牌名称,以减少讨论不同工具和能力时实现之间的混淆。

我们近期计划同时维护原始 Pharos 框架和 Kaiju,因为两者都能提供独特的功能和能力。

注意:作为一个原型,评估此插件生成的函数哈希时可能会遇到许多问题。例如,与 Pharos 实现不同,Kaiju 的函数哈希模块会为非常小的函数(例如只有一条指令如 RET)创建哈希,导致更多意外碰撞。因此,此插件与 Pharos fn2hash 的分析结果可能存在差异。

安装

预构建的 Kaiju 包 已提供。只需下载与您的 Ghidra 版本对应的 ZIP 文件,然后按照以下说明安装。建议通过 Ghidra 图形界面安装,但也可以手动解压到相应目录进行安装。

CERT Kaiju 需要以下运行时依赖项:

  • Ghidra 10.3.x、10.4.x、11.0.x、11.1.x、11.2.x、11.3.x、11.4.x、12.0.x
  • JDK 21(旧版 Ghidra 使用 JDK 17)
  • Z3,包括 Z3 Java 绑定 .jar

Z3 作为预构建包的一部分提供(已预编译),您也可以自行构建 Z3 或使用 Linux 发行版的软件包。

图形安装

启动 Ghidra,在初始窗口中选择菜单:File > Install Extension。点击扩展窗口顶部的加号,在文件浏览器中导航并选择 .zip 文件,然后点击 OK。扩展将被安装,窗口中的扩展名称旁会标记一个复选框,表示已安装并准备就绪。

界面将提示您重启 Ghidra 以使用该扩展。重启后,Kaiju 的额外功能即可在交互界面或脚本中使用。

某些功能可能需要启用 Kaiju 插件。为此,打开 Code Browser,然后导航至菜单 File > Configure。在弹出的窗口中,点击 "CERT Kaiju" 类别图标下方的 Configure 链接。将弹出一个窗口,显示所有已公开发布的 Kaiju 插件。勾选您希望激活的插件,然后点击 OK。现在您就可以使用交互式插件功能了。

如果插件启用后未立即显示,可以在 Code Browser 的 Window 菜单中找到该插件。

未来工具的试验性 "alpha" 版本可以从 "Experimental" 类别中获取(如果您希望测试的话)。但这些插件显然属于实验性且不受支持的,不建议用于生产环境。不过,我们欢迎早期反馈!

手动安装

像 Kaiju 这样的 Ghidra 扩展也可以手动安装:将扩展内容解压到 Ghidra 安装目录的相应位置。更多信息请参阅 Ghidra 安装指南。

自行构建

您也可以直接从源代码构建 Kaiju 扩展。请参阅 Kaiju 源代码顶级目录中的 INSTALL.md 文件。

使用

Kaiju 工具既可用于交互式图形方式,也可用于更适合批处理任务的 "无头" 模式。根据工具性质,某些工具可能仅适用于图形或仅适用于无头模式。

交互式图形界面

Kaiju 利用 Java Swing 和 Ghidra 的插件架构,在 Ghidra 中创建交互式图形界面(GUI)。

Kaiju 的大多数工具实际上是分析插件,当选择 "Auto Analysis" 选项时会自动运行(无论是在导入新的可执行文件进行反汇编时,还是直接在代码浏览器窗口中选择 Analysis > Auto Analyze...)。在 Auto Analyze 工具中,您会看到默认选中了几个 CERT 分析插件,但您可以根据需要启用/禁用它们。

然而,分析工具必须先运行,各种 GUI 工具才能正常工作。在某些边缘情况下,甚至建议运行两次 Auto Analysis,以确保生成所有元数据,从而创建正确的分区和反汇编信息,进而影响哈希结果。

分析器在 Ghidra 的分析阶段自动运行,包括:

  • DisasmImprovements = 与标准 Ghidra 分区相比,改进了反汇编的函数分区。
  • Fn2Hash = 计算程序中所有函数的函数哈希,并用于生成程序的 YARA 签名。

GUI 工具包括:

  • GhiHorn = 一个用于计算控制流图中路径和可达性的插件,使用 Z3。
    • 从 Ghidra 的 CodeBrowser 中选择 Kaiju > GhiHorn 即可访问此工具。您也可以按 CTRL-G 启动插件。
  • 函数哈希查看器 = 一个插件,显示程序中函数的交互式列表以及多种哈希类型。分析人员可以使用它将程序中的一个或多个函数导出为 YARA 签名。
    • 如果尚未显示,从菜单中选择 Window > CERT Kaiju Function Hash Viewer 即可开始使用此工具。将出现一个新窗口,显示哈希和其他数据的表格。窗口顶部的按钮可以刷新表格或导出数据到文件或 YARA 签名。该窗口也可以停靠到主 Ghidra CodeBrowser 中,以便与其他插件一起更轻松地使用。使用该工具时,可在 Ghidra 的 Help > Contents 菜单中找到更详细的使用文档。
  • OOAnalyzer JSON 导入器 = 一个插件,可以加载、解析和将 Pharos 生成的 OOAnalyzer 结果应用于 Ghidra 项目中的面向对象 C++ 可执行文件。启动时,插件会提示用户选择 OOAnalyzer 生成的 JSON 输出文件,该文件包含恢复的 C++ 类信息。加载 JSON 文件后,OOAnalyzer 找到的恢复的 C++ 数据类型和符号会在 Ghidra Code Browser 中更新。该插件的设计和实现细节在我们的 SEI 博客文章 使用 OOAnalyzer 与 Ghidra 逆向面向对象代码 中有描述。
    • 从菜单中选择 Kaiju > OOAnalyzer Importer 即可开始使用此工具。一个简单的对话框会要求您定位要导入的 JSON 文件。使用该工具时,可在 Ghidra 的 Help > Contents 菜单中找到更详细的使用文档。

命令行 "无头" 模式

Ghidra 还支持 "无头" 模式,允许在某些情况下无需使用交互式 GUI 即可运行工具。因此,这些命令可用于脚本化和批量处理大量文件。

无头工具主要依赖 Ghidra 的 GhidraScript 功能。

无头工具包括:

  • fn2hash = 自动对给定程序运行 Fn2Hash,并将所有哈希导出到指定的 CSV 文件
  • fn2yara = 自动对给定程序运行 Fn2Hash,并将所有哈希数据作为 YARA 签名导出到指定文件
  • fnxrefs = 分析程序,并根据入口点地址导出在数据或程序其他部分具有交叉引用的函数列表

包含了一个名为 kaijuRun 的简单 shell 启动脚本,用于在简单场景下运行这些无头命令,例如输出单个可执行文件中每个函数的函数哈希。假设设置了 GHIDRA_INSTALL_DIR 变量,可以如下对单个可执行文件运行启动脚本:

root@kitploit:~
$GHIDRA_INSTALL_DIR/Ghidra/Extensions/kaiju/kaijuRun fn2hash example.exe

该命令会将结果输出到自动命名的文件 example.exe.Hashes.csv。

kaijuRun 脚本的基本帮助信息可通过运行以下命令获取:

root@kitploit:~
$GHIDRA_INSTALL_DIR/Ghidra/Extensions/kaiju/kaijuRun --help

有关使用此模式及 kaijuRun 启动脚本的更多信息,请参阅仓库中的 docs/HeadlessKaiju.md 文件。

更多文档与帮助

更全面的文档和帮助可通过以下两种格式之一获取。

请参阅 docs/ 目录,其中包含针对所有 Kaiju 工具和组件的 Markdown 格式文档和帮助。这些文档易于维护、编辑,甚至可以从命令行阅读。

或者,您也可以在 Ghidra 内置帮助系统中找到相同的文档。要访问这些帮助文档,请从 Ghidra 菜单转到 Help > Contents,然后在帮助窗口左侧的树状导航中选择 CERT Kaiju。

请注意,Ghidra 帮助文档与 docs/ 目录中的 Markdown 文件内容完全相同;得益于一个树内 gradle 插件,gradle 会自动解析 Markdown 并在构建过程中导出为 Ghidra HTML。这使得维护更简单(只需在一个地方更新文档,而不是两个),并保持两者同步。

所有新文档都应添加到 docs/ 目录。

许可协议

本软件由卡内基梅隆大学软件工程研究所根据简化的 BSD 风格许可证授权。请在此仓库根目录的 LICENSE.md 文件中查看此许可证的完整详情,以及本项目中使用到的依赖项的许可条款。

CERT Kaiju 徽标基于 Cameron Spahn 创作的 艺术作品,最初根据 Creative Commons Attribution-Share Alike 4.0 International 许可证 发布。

下载工具