mooncat-greenpy/KinGAidra

GitHub: mooncat-greenpy/KinGAidra

一款为 Ghidra 提供 AI 辅助逆向工程能力的扩展,支持对话历史持久化、自定义 JSON 工作流和 Headless 自动化分析。

Stars: 15 | Forks: 1

# KinGAidra KinGAidra 是一个 Ghidra 扩展,将 AI 辅助的逆向工程工作流直接引入 Ghidra 工作区。 它按程序存储对话和生成结果,因此您稍后可以在 Ghidra 中重新打开它们,并导出程序以与队友分享完整的对话历史。 它还支持在 GUI 和 Headless 模式下的可重复操作。 ## 您将获得 - **SOP-as-code:** 将多步工作流定义为 JSON 并作为 UI 操作运行。 - **内置可追溯性:** 对话和生成结果按程序保存在其中,可以直接在 Ghidra 中重新打开(无需外部聊天工具)。导出程序还可以让您同时分享对话历史。 - **UI 与 Headless 对等:** 通过 UI 或 Headless 运行相同的命名操作/工作流。 - **对分析师友好的导航:** AI 输出可以以 Markdown 格式呈现,并包含可点击的地址,以便跳转到 Ghidra 中的相关位置(Chat/DecomView/KeyFunc)。 - **不仅仅是聊天:** 生成解释、重构建议、注释、关键函数优先级排序和整个程序的导出。 ## 文档 - [安装指南](./INSTALLATION.md) - [使用指南](./USAGE.md) - [用例指南](./USE_CASES.md) ## 快速开始 1. 从 [releases](https://github.com/mooncat-greenpy/KinGAidra/releases) 下载扩展 ZIP 包。 2. 打开 Ghidra,在 `File -> Install Extensions` 中启用 `KinGAidra`,然后重启。 3. 在 `Window -> Script Manager` 中,打开一个聊天脚本(例如 `kingaidra_chat.py`)并设置所需的值,如 `URL`、`MODEL` 和 `API_KEY`,然后保存脚本。 4. 在 KinGAidra 配置(齿轮图标)中,启用一个模型用于 Chat。 5. 右键单击一个函数并运行 `Explain using AI`。 6. 打开 History 并确认对话已为当前程序保存。 ## 使用场景 有关带屏幕截图的基于场景的演练,请参阅: - [用例指南](./USE_CASES.md) ## 核心功能 ### 聊天 在 Ghidra 中提出自由形式的逆向工程问题,然后稍后从 History 视图重用保存的对话。 **Chat 示例** ![Chat 示例](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9d3dcff478134049.png) **解释反编译代码** ![解释反编译代码](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e4eba2a659134100.png) **反编译汇编** ![反编译汇编](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/33bdde244f134107.png) ### Refactor 生成重命名/数据类型建议,并可以将其应用到 Ghidra。 **Refactoring 示例** ![Refactoring 示例](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4e517d5daa134117.png) ### DecomView - 为每个函数生成基于 LLM 的 C 视图。 - 将生成的视图存储在对话历史中,并支持重新生成/重构。 **DecomView 示例** ![DecomView 示例](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/82f85e6b3e134124.png) ### Commenting - 生成注释建议并将其应用于当前函数。 **Commenting 示例** ![Commenting 示例](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/ac8bc4dbb7134132.png) ### KeyFunc - 使用聊天衍生的证据对函数进行优先级排序。 - 可以从历史记录中重新加载以前保存的输出。 **KeyFunc 示例** ![KeyFunc 示例](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5ecccbf351134138.png) ### 历史 - History 显示位置、类型、模型和时间戳。 - 选择一个条目即可在 UI 中恢复对话。 **History 示例** ![History 示例](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9aeee17904134145.png) ## 自定义工作流 JSON 配置: `KinGAidra -> Prompts -> Chat -> Workflows -> Action Workflows (JSON)` ``` [ { "name": "IoCs", "system_prompt": "You are a senior malware analyst. Facts only.", "tasks": [ "Summarize high-level behavior for and include evidence addresses.", "List only high-confidence IOCs from with reasons." ] } ] ``` 行为: - 出现在弹出菜单中:`Custom Workflow using AI -> ` - 任务在一个对话中按顺序运行 - 结果存储在项目对话历史中 - 相同的 `name` 可以在 Headless 模式(`--action`)下执行 ## Headless 示例 ``` analyzeHeadless \ -process \ -postScript kingaidra_headless_chat.java \ --action "Triage: Behavior + IOC" \ --output workflow_result.md ``` 更多示例:[USAGE.md](./USAGE.md) ## 常见问题解答 ### 对话历史存储在哪里? KinGAidra 将对话记录存储在当前程序数据库表 `KinGAidra_Conversation` 中。 当您切换程序文件时,您会看到该程序自己的历史记录。 ### 我们可以定义自己的团队工作流吗? 可以。在 `KinGAidra -> Prompts -> Chat -> Workflows -> Action Workflows (JSON)` 中将工作流定义为 JSON。 每个工作流都显示为一个弹出操作,也可以在 Headless 模式下执行。 ### 同一个工作流可以在 CI 或批处理模式下运行吗? 可以。使用 `kingaidra_headless_chat.java --action ""` 执行相同的命名操作/工作流,无需 GUI。 ## 许可证 KinGAidra 根据 Apache License 2.0 授权。 有关完整的许可证文本,请参阅 [KinGAidra/LICENSE](./KinGAidra/LICENSE),有关捆绑的依赖许可证,请参阅 [KinGAidra/THIRD_PARTY_LICENSES.md](./KinGAidra/THIRD_PARTY_LICENSES.md)。
标签:AI 编程助手, ChatGPT, DAST, DLL 劫持, Ghidra, Homebrew安装, IDA, JS文件枚举, LLM, Promptflow, SOP-as-code, Unmanaged PE, Wayback Machine, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 人工智能, 代码解释, 反汇编, 可追溯性, 域名枚举, 增强分析, 大语言模型, 工作流自动化, 恶意软件分析, 数据展示, 无头模式, 用户模式Hook绕过, 红队, 网络安全, 自动化分析, 跨站脚本, 逆向工具, 逆向工程, 隐私保护, 静态分析