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 示例**

**解释反编译代码**

**反编译汇编**

### Refactor
生成重命名/数据类型建议,并可以将其应用到 Ghidra。
**Refactoring 示例**

### DecomView
- 为每个函数生成基于 LLM 的 C 视图。
- 将生成的视图存储在对话历史中,并支持重新生成/重构。
**DecomView 示例**

### Commenting
- 生成注释建议并将其应用于当前函数。
**Commenting 示例**

### KeyFunc
- 使用聊天衍生的证据对函数进行优先级排序。
- 可以从历史记录中重新加载以前保存的输出。
**KeyFunc 示例**

### 历史
- History 显示位置、类型、模型和时间戳。
- 选择一个条目即可在 UI 中恢复对话。
**History 示例**

## 自定义工作流 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绕过, 红队, 网络安全, 自动化分析, 跨站脚本, 逆向工具, 逆向工程, 隐私保护, 静态分析