{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "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/",
    "https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/pyproject.toml",
    "https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/bindings/python/quokka/version.py",
    "https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/ghidra_extension/README.md",
    "https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/binaryninja_extension/README.md",
    "https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/.gitattributes",
    "https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/.github/workflows/python.yml",
    "https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/LICENSE"
  ],
  "category": "native-analysis",
  "description_en": "Quarkslab’s binary exporter, inspired by BinExport, saves a disassembler’s analysis to a protobuf .quokka file so functions, basic blocks, data, cross-references, segments and optionally decompiled code can be used later without the disassembler. Its Python bindings load an export together with the original binary, decode instructions at runtime with Capstone, or optionally lift them to P-code with pypcode, and expose programs, functions and control-flow graphs through one API. The main branch adds Ghidra and Binary Ninja exporters beside the IDA Pro plugin, a parallel quokka-cli batch exporter and name and type edits that can be written back to an IDA database.",
  "description_zh": "Quarkslab 的二进制导出工具，受 BinExport 启发，把反汇编器的分析结果保存为 protobuf 格式的 .quokka 文件，此后无需反汇编器即可使用其中的函数、基本块、数据、交叉引用、段以及可选的反编译代码。其 Python 绑定将导出文件与原始二进制一并载入，运行时用 Capstone 解码指令，也可选用 pypcode 将其提升为 P-code，并通过统一的 API 提供程序、函数和控制流图。main 分支在 IDA Pro 插件之外新增了 Ghidra 与 Binary Ninja 导出器、可并行批量导出的 quokka-cli，以及可写回 IDA 数据库的名称和类型编辑。",
  "entry_url": "https://awesomerea.org/resources/quokka-binary-exporter/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/quokka-binary-exporter/",
  "evidence_url": "https://github.com/quarkslab/quokka/blob/5afe14bd424835431bbd8015f061a9b551608af4/README.md",
  "group": "tools",
  "id": "quokka-binary-exporter",
  "json_url": "https://awesomerea.org/resources/quokka-binary-exporter/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/quokka-binary-exporter/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/quokka-binary-exporter/index.md",
  "name": "Quokka",
  "name_zh": "Quokka 二进制导出工具",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Latest release at review: v0.6.2, published 2025-12-08 together with quokka-project 0.6.2 on PyPI; its README supports IDA 7.3+, and it ships prebuilt IDA plugins for IDA 7.4 through 9.2 on Windows, Linux and macOS. The reviewed main commit (2026-10-14) is 261 commits later and declares version 1.0.0; the Ghidra and Binary Ninja exporters, quokka-cli and the IDA 9.1+ requirement described here exist only on main, not in a released package.",
    "Exporting needs one disassembler. The main-branch C++ plugin targets IDA Pro 9.1+, installs through hcli on 9.2+ or builds with CMake, which fetches the open-source IDA SDK for 9.2+ and needs a separately obtained SDK for older versions; the Java extension needs Ghidra 12.0.3+ and JDK 21+; the Binary Ninja plugin declares version 4.0 build 4911 as its minimum, and headless use there needs a commercial license. The Python bindings need Python 3.10+ on main, or 3.8+ for 0.6.2, with capstone, networkx, protobuf and python-magic.",
    "Only the LIGHT export mode works: exports hold block-level data, so loading them needs the original binary for Capstone to decode instructions, and the self-contained FULL mode is planned but not implemented. quokka-cli offers decompiled-code export for IDA only. The README warns that Capstone’s disassembly can differ from the disassembler’s.",
    "Test fixtures in tests/dataset are stored with Git LFS: programs built from the included many_types and sig_test sources, a Linux kernel module (nf_nat_pt.ko), a UEFI PEI module (StatusCodeHandlerPei.efi), a puraUpdate executable and their exports; docs/samples adds a qb-crackme sample and its export. Workflows build the IDA plugin, build and test the Ghidra extension, test the Binary Ninja plugin and run the Python tests on Python 3.10–3.13.",
    "Apache-2.0 license; IDA Pro, Ghidra and Binary Ninja keep their own terms."
  ],
  "requirements_zh": [
    "审阅时最新版本为 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 仍受各自条款约束。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/quarkslab/quokka",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
