# Quokka 二进制导出工具

> Quarkslab 的二进制导出工具，受 BinExport 启发，把反汇编器的分析结果保存为 protobuf 格式的 .quokka 文件，此后无需反汇编器即可使用其中的函数、基本块、数据、交叉引用、段以及可选的反编译代码。其 Python 绑定将导出文件与原始二进制一并载入，运行时用 Capstone 解码指令，也可选用 pypcode 将其提升为 P-code，并通过统一的 API 提供程序、函数和控制流图。main 分支在 IDA Pro 插件之外新增了 Ghidra 与 Binary Ninja 导出器、可并行批量导出的 quokka-cli，以及可写回 IDA 数据库的名称和类型编辑。

- 类型：工具
- 目标：二进制
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-02
- 原始资源：<https://github.com/quarkslab/quokka>
- 一手来源：<https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/quokka-binary-exporter/>
- 记录 JSON：<https://awesomerea.org/resources/quokka-binary-exporter/record.json>
- 英文版：[English](https://awesomerea.org/resources/quokka-binary-exporter/index.md)

## 使用条件与局限

- 审阅时最新版本为 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 仍受各自条款约束。

## 一手来源

1. <https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/README.md>
2. <https://github.com/quarkslab/quokka/releases/tag/v0.6.2>
3. <https://github.com/quarkslab/quokka/blob/v0.6.2/README.md>
4. <https://pypi.org/project/quokka-project/0.6.2/>
5. <https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/pyproject.toml>
6. <https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/bindings/python/quokka/version.py>
7. <https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/ghidra_extension/README.md>
8. <https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/binaryninja_extension/README.md>
9. <https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/.gitattributes>
10. <https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/.github/workflows/python.yml>
11. <https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/LICENSE>

## 同分区更多条目：原生二进制

- [knife 静态逆向工程工具包](https://awesomerea.org/zh/resources/knife/index.md) · 工具
- [BARF 二进制分析与逆向工程框架](https://awesomerea.org/zh/resources/barf/index.md) · 工具
- [rabbitizer MIPS 指令解码器](https://awesomerea.org/zh/resources/rabbitizer/index.md) · 工具
- [ghidrecomp 命令行 Ghidra 批量反编译工具](https://awesomerea.org/zh/resources/ghidrecomp/index.md) · 工具
- [Vivisect 二进制分析与调试框架](https://awesomerea.org/zh/resources/vivisect/index.md) · 工具
- [r2pipe radare2 多语言脚本接口](https://awesomerea.org/zh/resources/r2pipe/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
