ワンクリックで
ghidra-rag
用于查询 Ghidra 逆向分析工具的 API 文档和使用说明的 RAG 系统,支持多版本切换、API 关系查询、语义搜索。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
用于查询 Ghidra 逆向分析工具的 API 文档和使用说明的 RAG 系统,支持多版本切换、API 关系查询、语义搜索。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | ghidra-rag |
| description | 用于查询 Ghidra 逆向分析工具的 API 文档和使用说明的 RAG 系统,支持多版本切换、API 关系查询、语义搜索。 |
| author | Akiba Team |
| version | 1.0.0 |
本技能用于在逆向分析过程中,快速查询 Ghidra 逆向框架的 API 使用方法、类继承关系、文档内容。通过 RAG(检索增强生成)系统,可以进行语义搜索找到相关的 API 和文档。
适用人群:进行固件分析、二进制逆向工程的开发者。
skills/ghidra_rag/config.json,获取服务器地址每次发起请求前,读取配置文件获取服务器地址:
skills/ghidra_rag/config.json
配置文件内容示例:
{
"rag_server": {
"host": "localhost",
"port": 8000,
"base_url": "http://localhost:8000",
"version": "11.3.2"
}
}
端点: GET /api/v1/versions
返回:
{
"versions": [
{"version": "11.3.2", "docs_path": "docs/11.3.2"}
]
}
重要:每次开始查询前,必须先调用此端点获取可用版本列表,然后根据用户需求或自行判断选择合适的版本。如果用户未指定版本,应询问用户希望使用哪个版本。
端点: POST /api/v1/api/search 或 GET /api/v1/api/search
请求体:
{
"query": "搜索关键词",
"top_k": 5,
"chunk_type": "class" | "method" | null,
"version": "11.3.2"
}
重要:必须先通过 /api/v1/versions 获取可用版本,version 参数必填,不可使用默认值。
返回:
{
"query": "...",
"version": "11.3.2",
"results": [
{
"type": "method",
"class": "ghidra.app.util.bin.format.elf.ElfHeader",
"method": "parse",
"signature": "void parse()",
"score": 0.1472,
"javadoc": "..."
}
]
}
使用场景:搜索与关键词相关的 API 类或方法,如 "parse elf file"、"read memory bytes"
端点: POST /api/v1/search 或 GET /api/v1/search
请求体:
{
"query": "搜索关键词",
"top_k": 5,
"doc_type": "installation" | "user_guide" | "changelog" | null,
"version": "11.3.2"
}
重要:version 参数必填,不可使用默认值。
返回:
{
"query": "...",
"version": "11.3.2",
"results": [
{
"doc_type": "installation",
"heading": "Ghidra Installation Guide",
"content": "文档内容...",
"source_file": "docs/11.3.2/InstallationGuide.html",
"score": 0.4677
}
]
}
使用场景:搜索用户指南、安装说明、发布说明等文档
端点: GET /api/v1/classes/{class_name}/methods
参数: version - 必填,Ghidra 版本
返回:
{
"class_name": "ghidra.program.model.listing.Function",
"methods": [...]
}
端点: GET /api/v1/classes/{class_name}/fields
返回:
{
"class_name": "ghidra.program.model.listing.Function",
"fields": [
{
"name": "propertyName",
"field_type": "String"
}
]
}
端点: GET /api/v1/classes/{class_name}/hierarchy
返回:
{
"class_name": "ghidra.program.model.listing.Function",
"extends": ["ParentClass", "GrandParentClass"],
"implements": ["Interface1", "Interface2"]
}
端点: GET /api/v1/versions
返回:
{
"versions": [
{"version": "11.3.2", "docs_path": "docs/11.3.2"}
]
}
端点: GET /health
返回: {"status": "healthy"}
class 或 method,用于限定搜索类型installation、user_guide、changelog、release_notes、documentation、guide、cheatsheetghidra.program.model.listing.Function11.3.2当需要查找如何解析 ELF 文件时:
1. 读取配置: skills/ghidra_rag/config.json 获取 base_url
2. 获取版本: GET {base_url}/api/v1/versions 查看可用版本
3. 选择版本: 如用户未指定,询问用户希望使用哪个版本
4. 发送搜索: POST {base_url}/api/v1/api/search
Body: {"query": "parse elf header", "top_k": 5, "version": "11.3.2"}
5. 解析返回的 results,找到 score 最高的方法
当需要了解 Function 类有哪些方法时:
1. 获取版本: GET {base_url}/api/v1/versions
2. 选择版本: 假设用户选择 11.3.2
3. 发送请求: GET {base_url}/api/v1/classes/ghidra.program.model.listing.Function/methods?version=11.3.2
4. 解析返回的 methods 列表
当需要查找 Ghidra 安装说明时:
1. 获取版本: GET {base_url}/api/v1/versions
2. 选择版本: 假设用户选择 11.3.2
3. 发送请求: POST {base_url}/api/v1/search
Body: {"query": "how to install ghidra", "top_k": 3, "doc_type": "installation", "version": "11.3.2"}
4. 解析返回结果中的 content 和 source_file
/api/v1/versions 获取可用版本,用户未指定版本时需询问用户version 参数不可省略或使用默认值Function 必须写成 ghidra.program.model.listing.Functionskills/ghidra_rag/config.json - RAG 服务器配置ghidra_rag_server/ - RAG 服务器源码ghidra_rag_client/ - 客户端 SDK(Python)