iots-p/akiba/akiba-zh
Claude Code and agent skill by iots-p/akiba
- community
Checking that the SKILL.md file is still in the repository.
Akiba 二进制分析框架使用与开发指南 - 基于 Ghidra 和 Kotlin 的批量流水线式分析框架,适用于大规模固件和二进制文件分析
Install
npx vskill@latest install iots-p/akiba/akiba-zhSKILL.md
技能概述
Akiba 是一个基于 Ghidra 的支持批量流水线任务的二进制分析框架,使用 Kotlin 开发,设计用于大规模批量化二进制分析场景。
核心价值:
- 多线程流水线并行处理,提升分析效率
- 模块化设计,支持自定义分析流程
- 数据库存储分析结果,支持数据查询和导出
- 断点续传机制,保障长时间任务稳定性
适用人群:二进制安全研究人员、固件分析师、逆向工程师
不包含:Ghidra 基础操作教学、Kotlin/Java 编程入门、二进制分析理论知识
使用场景
- 场景1:需要批量分析大量固件或二进制样本(如 IoT 设备固件、恶意软件家族分析)
- 场景2:需要开发自定义分析模块并集成到 Akiba 流水线中
- 场景3:需要持久化保存分析结果到数据库,支持后续查询和比对
- 场景4:需要运行耗时较长的分析任务(如静态分析、符号执行),需要断点续传保障
- 场景5:需要为不同二进制文件配置差异化的分析流水线
核心内容
1. 定位 Akiba 安装
重要:在使用 Akiba 之前,必须先读取配置文件。
配置文件说明:
| 字段 | 说明 | |
|---|---|---|
akiba.home | Akiba 主源代码仓库路径 | |
akiba.executableRoot | Akiba 框架可执行文件根目录 | |
modExample.repoUrl | 模块开发示例仓库地址 | |
framework.runCommand | 运行 Akiba Framework 的命令,需要在后面添加各项所需参数 | |
daemon.host / daemon.port | 数据库守护进程地址 |
注意:
- 若
akiba.home为空或无效,且需要自行开发模块,需要从 Github 仓库 https://github.com/IoTS-P/Akiba.git 拉取,并按照仓库中的 README.md 拉取子模块,另外需要从 Github 下载 12.1 版本的 Ghidra:
- 从 https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.1_build 下载 Ghidra 12.1 发布包
- 解压发布包进入
ghidra_12.1_PUBLIC/support,在 Linux 系统中运行./buildGhidraJar脚本(如果没有权限则首先赋予),在 Windows 系统下运行buildGhidraJar.bat脚本。运行后将在ghidra_12.1_PUBLIC/support中生成ghidra.jar。 - 将
ghidra.jar复制到 Akiba 源码仓库根目录内库目录(akiba.home内的lib)
- 要运行 Akiba 框架,需要首先 cd 到发布程序根目录(
akiba.executableRoot)后使用./bin/akiba_framework启动,不得在其他位置运行
验证服务:
2. 环境准备
系统依赖
| 依赖项 | 版本要求 | 说明 | |
|---|---|---|---|
| Java | 21+ | 必须使用 JDK 21,低版本会导致运行时错误 | |
| Kotlin | 2.1.20+ | 框架开发语言 | |
| Ghidra | 12.1 | 二进制分析引擎(其他版本 API 不兼容) | |
| PostgreSQL | 最新稳定版 | 数据存储,由数据库守护进程管理 |
初始化步骤
3. 核心概念
流水线架构
Akiba 为每个二进制文件启动独立的任务流水线:
- 最大并行数量由
config.json的general.threads配置 - 不同文件的模块数据互相隔离
- 相同文件的处理模块串行运行
协程上下文
Akiba 为每个任务创建 2 个协程上下文:
| 上下文类型 | 访问权限 | 用途 | |
|---|---|---|---|
| 全局作用域 | 所有任务可访问 | 全局预处理、全局 API | |
| 流水线作用域 | 该流水线内任务可访问 | 二进制专属数据、任务 API |
数据处理
| 数据类型 | 存储位置 | 访问方式 | |
|---|---|---|---|
| 全局数据 | results 表的 global_data 列(JSON) | 模块间共享 | |
| 临时数据 | 流水线内存 HashMap | getTaskData()/setTaskData() | |
| 任务专用数据 | 自定义数据表列 | updateData() |
4. 配置文件详解
详细配置说明参见 docs/CONFIGURATION.md,核心配置结构:
注:Akiba Docker 不创建任何默认用户或实例。首次打开 Web 界面会要求设置第一个用户(管理员),登录后如果没有实例会要求填写实例名并在后台创建。
5. 模块开发
详细开发规范参见 docs/MODULE_DEVELOPMENT.md,核心开发步骤:
- 创建模块类:继承
AkibaModule,使用@WithTableColumn定义数据列 - 实现入口方法:在
startProcess()中编写分析逻辑 - 保存结果:通过
updateData()写入数据库 - 配置任务:在
config.json中注册模块
6. 日志管理
Akiba 按二进制文件和模块分离保存日志:
断点续传使用 starter.py 监控,日志 20 分钟无更新时自动重启:
7. 常见问题
Q1: 任务超时怎么办?
- 在
config.json中增大对应任务的timeout值 - 如需无限制超时,添加
@IgnoreRuntimeTimeout注解
Q2: 如何调试模块?
设置日志级别为 debug:
Q3: 数据库连接失败?
检查数据库守护进程是否运行:
示例
示例1:Docker 部署
示例2:配置并运行分析任务
- 编辑
config.json配置任务 - 确保数据库守护进程运行在
127.0.0.1:31777 - 启动分析:
示例3:开发自定义模块
参考 subprojects/akiba_mod_example/usages_zh/AkibaExample.md(远程仓库路径:https://github.com/IoTS-P/Akiba-Mod-Example/blob/main/usages_zh/AkibaExample.md)
注意事项
- 版本兼容性:Ghidra 12.1 是当前唯一兼容版本,其他版本可能导致 API 不兼容
- Java 版本:必须使用 JDK 21,设置
JAVA_HOME环境变量 - 子模块:首次克隆后必须执行
git submodule update --init --recursive - 数据库认证:数据库守护进程用自身的凭据库(
~/.akiba/users.json,bcrypt)校验用户名与口令;凭据库为空时第一次登录会自行注册为管理员,此后必须匹配。不存在任何内置默认凭据 - 登录防爆破:Web 登录与守护程序登录使用同一套策略——失败(口令错误或用户名不存在)先等待 3 秒再返回,24 小时内连续失败 5 次即锁定该账户 24 小时;管理员可在 Users 页面点 Unlock 提前解锁,或调用
POST /instance/unlock。守护程序对来自 loopback 的调用豁免该策略(同机的框架服务器转发的是用户已输入的凭据,否则任何人 5 次错误口令就能让部署连不上自己的守护程序) - API 作用域:流水线 API 只能被该流水线的后续任务调用
- 协程安全:避免在协程中使用 Java
ReentrantLock,改用Mutex
拓展说明
相关文档
| 文档 | 说明 | |
|---|---|---|
akiba_config.json | 全局配置 - 定位 Akiba 安装和数据库连接信息 | |
REFERENCE.md | 快速参考卡片 - 包含完整命令、路径速查和配置模板 | |
docs/CONFIGURATION.md | config.json 配置文件完整说明 | |
docs/MODULE_DEVELOPMENT.md | Akiba 模块开发规范 | |
subprojects/akiba_framework/Usage_guide_zh.md(远程) | 框架使用指南 | |
subprojects/akiba_framework/README_zh.md(远程) | 框架 README - 包含子命令说明 | |
subprojects/akiba_db_daemon/Usage_guide_zh.md(远程) | 数据库守护进程 API |
外部资源
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/akiba_zh/SKILL.md
Popularity
- Repository stars
- 91
- Repository forks
- 10
- 7-day trend score
- 23
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/iots-p/akiba/akiba-zh)