工具
Quokka 二进制导出工具
Quarkslab 的二进制导出工具,受 BinExport 启发,把反汇编器的分析结果保存为 protobuf 格式的 .quokka 文件,此后无需反汇编器即可使用其中的函数、基本块、数据、交叉引用、段以及可选的反编译代码。其 Python 绑定将导出文件与原始二进制一并载入,运行时用 Capstone 解码指令,也可选用 pypcode 将其提升为 P-code,并通过统一的 API 提供程序、函数和控制流图。main 分支在 IDA Pro 插件之外新增了 Ghidra 与 Binary Ninja 导出器、可并行批量导出的 quokka-cli,以及可写回 IDA 数据库的名称和类型编辑。
- 目标
- 二进制
- 类别
- 原生分析工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅时最新版本为 v0.6.2,于 2025-12-08 发布,同时在 PyPI 发布 quokka-project 0.6.2;其 README 称支持 IDA 7.3+,并为 Windows、Linux 和 macOS 提供 IDA 7.4 至 9.2 的预构建插件。所审阅的 main 提交(2026-10-14)比它晚 261 个提交,版本号标为 1.0.0;这里描述的 Ghidra 与 Binary Ninja 导出器、quokka-cli 以及 IDA 9.1+ 要求只存在于 main 分支,尚未进入任何正式发布的软件包。
- 导出需要一种反汇编器。main 分支的 C++ 插件面向 IDA Pro 9.1+,可在 9.2+ 上通过 hcli 安装,或用 CMake 构建:9.2+ 会自动获取开源的 IDA SDK,更早的版本则需自行取得 SDK;Java 扩展需要 Ghidra 12.0.3+ 和 JDK 21+;Binary Ninja 插件声明最低版本为 4.0(build 4911),以无界面方式使用 Binary Ninja 需要商业许可证。Python 绑定在 main 上需要 Python 3.10+(0.6.2 为 3.8+),并依赖 capstone、networkx、protobuf 和 python-magic。
- 目前只实现了 LIGHT 导出模式:导出文件仅包含基本块级数据,因此载入时需要原始二进制,供 Capstone 解码指令;自包含的 FULL 模式仍在计划中,尚未实现。quokka-cli 仅在使用 IDA 时支持导出反编译代码。README 提醒,Capstone 的反汇编结果可能与反汇编器的不同。
- tests/dataset 中的测试样本以 Git LFS 存储:由随附 many_types 和 sig_test 源码构建的程序、一个 Linux 内核模块(nf_nat_pt.ko)、一个 UEFI PEI 模块(StatusCodeHandlerPei.efi)、一个 puraUpdate 可执行文件及它们的导出文件;docs/samples 另有一个 qb-crackme 示例及其导出文件。工作流会构建 IDA 插件、构建并测试 Ghidra 扩展、测试 Binary Ninja 插件,并在 Python 3.10–3.13 上运行 Python 测试;本次审阅未运行任何程序。
- 采用 Apache-2.0 许可证;IDA Pro、Ghidra 和 Binary Ninja 仍受各自条款约束。所审来源未确立 REA 或 AI 的使用。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · quarkslab/quokka · 修订 5afe14b
- https://github.com/quarkslab/quokka/releases/tag/v0.6.2
- https://github.com/quarkslab/quokka/blob/v0.6.2/README.md
- https://pypi.org/project/quokka-project/0.6.2/
- pyproject.toml GitHub · quarkslab/quokka · 修订 5afe14b
- bindings/python/quokka/version.py GitHub · quarkslab/quokka · 修订 5afe14b
- ghidra_extension/README.md GitHub · quarkslab/quokka · 修订 5afe14b
- binaryninja_extension/README.md GitHub · quarkslab/quokka · 修订 5afe14b
- .gitattributes GitHub · quarkslab/quokka · 修订 5afe14b
- .github/workflows/python.yml GitHub · quarkslab/quokka · 修订 5afe14b
- LICENSE GitHub · quarkslab/quokka · 修订 5afe14b