基于 Ghidra 反编译器构建的逆向工程工作台,采用原生无 Java 引擎,具备 AI 辅助函数分析、字节修补、沙箱模拟以及 CLI/MCP 自动化功能。
借助得力助手,拆解程序并理解它。 KRAKEN 是一个开源逆向工程工作台,构建于 Ghidra 的反编译器之上,拥有无 Java 的原生引擎和可选的完整 Ghidra 引擎。你、你的脚本和 AI 代理都通过同一套命令在同一个项目上工作,每一次编辑都会被记录、归属并可撤销。你无需了解逆向工程即可上手:应用会随操作解释术语,教程会带你完成第一次会话。长期目标是逐函数地用 Rust 重写二进制文件,并与原始版本进行校验。

一个真实的原生引擎项目:来自本仓库的 stripped_calc-O2-stripped,在命名了几个函数之后。
分析
补丁
AI
自动化
--json 输出、一个 Python 模块,以及一个保持项目热度的后台守护进程。重写
KRAKEN 处于 pre-alpha(0.1a)阶段。预计会有粗糙之处和破坏性变更。
| Linux x86_64 | macOS(Apple 芯片) | Windows x86_64 | |
|---|---|---|---|
| CLI、MCP 服务器、GUI | 可用 | 可构建,实验性 | 可构建,实验性 |
原生引擎,无 Java(kraken setup --native) | 可用(ELF 和 PE) | 尚不可用 | 尚不可用 |
使用 Ghidra 进行分析(kraken setup) | 可用 | 尚不可用 | 尚不可用 |
| Ghidra 周围的沙箱 | Landlock | 尚不可用 | 尚不可用 |
| 本地模型 | 可用 | 可构建 | 可构建 |
| 重写流水线 | 可用(需要 Landlock 和模型) | 拒绝运行 | 拒绝运行 |
“可构建”意味着代码可以编译并在 CI 中通过检查,并不意味着整个产品已在该平台上得到验证。Linux 是目前应使用的平台。
Linux x86_64(无需 Java:原生引擎及其处理器文件已包含在发布版中):
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/Adam-AtlasSoftware/kraken/main/scripts/install.sh | bash
脚本会对照该发行版的 SHA256SUMS 校验下载内容,无需 sudo,并安装到 ~/.local。或者从最新发行版获取 AppImage(chmod +x KRAKEN-*.AppImage,然后运行它;./KRAKEN-*.AppImage kraken --help 可运行命令行),或在 Arch Linux 上从 AUR 安装 kraken-workbench-bin。Windows 和 macOS 归档也在发行版页面上,且为实验性(参见状态)。安装中有详细说明以及从源码构建的方法。
kraken project-create --binary /usr/bin/ls --project ~/kraken-projects/ls
kraken analyze --project ~/kraken-projects/ls
kraken list-functions --project ~/kraken-projects/ls --limit 20
kraken-gui # or open the app and pick the project
新项目在原生引擎能够打开文件时使用原生引擎,否则使用可选的 Ghidra 引擎(Mach-O、其他处理器、Windows 调试信息),kraken setup 会在首次使用时连同 JDK 一起下载该引擎。原生引擎页面对两者进行了比较。corpus/bin/ 中的练习程序是一个不错的起点,教程会带你完成第一次会话。
连接一个 agent:claude mcp add kraken -- kraken mcp --project ~/kraken-projects/ls。
你需要 Rust 和 C++ 编译器:
git clone https://github.com/Adam-AtlasSoftware/kraken && cd kraken
cargo build --release -p kraken-cli -p krakend -p kraken-gui -p engine-native -p kraken-emu
export PATH="$PWD/target/release:$PATH"
kraken setup --native # once: fetches the pinned sources, compiles the Sleigh files (about a minute)
从 教程:你的第一次逆向工程会话 开始。
使用 mdbook build docs 构建本书。命令参考是自动生成的:修改命令后请运行 cargo xtask docs。
你分析的二进制文件是不可信的。Ghidra 和原生引擎的反编译器各自运行在独立进程中,在 Linux 上受 Landlock 限制:无网络访问,仅可写入一次性 home 目录和项目文件夹,且环境变量经过清理。KRAKEN 仅在你请求整程序重写时才会运行你打开的程序,其运行同样受到上述限制,并且会先征求你的同意。所有来自文件的内容(名称、字符串、注释、反编译文本)都只作为明确标记的不可信数据交给 AI 模型,绝不会作为指令。代理的写入是追加式的或提案式的:代理可以为仍名为 FUN_... 的对象添加名称或添加注释,但受每次运行的上限约束;任何会覆盖你工作的操作都会等待你接受。模型为重写流水线编写的代码只在沙箱中构建和运行,且只有你能接受它。参见 安全。
GPL-3.0-or-later。参见 LICENSE。第三方声明见 THIRD-PARTY-NOTICES.md。
仅在你获准分析的软件上使用 KRAKEN。