# knife 静态逆向工程工具包

> 以 Rust 编写的静态逆向工程工具包，安装后为 knife 命令，可在不运行目标的情况下解析 PE、ELF、Mach-O 和 WebAssembly 文件。它能分诊哈希、节区、缓解措施、导入、字符串、威胁指标和加密常量；通过面向 x86/x64 与 AArch64 的递归下降反汇编恢复函数、调用图和控制流图；还能把函数提升为实验性伪代码。分析者添加的命名、注释、类型和暂存补丁保存在按二进制区分的数据库中，由命令行、终端界面和 MCP 服务器共享；另有分析步骤按参数来源对有风险的 API 调用点排序，并汇总 Windows 驱动的派发例程和 IOCTL 接口。

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

## 使用条件与局限

- 仓库创建于 2026-08-08。v1.8.3 版本（2026-10-11）提供 Linux x86_64、macOS arm64/x86_64 和 Windows x86_64 压缩包，而 crates.io 上的 reknife crate 停在 1.8.0（2026-09-15）；所审阅的 main 提交比 v1.8.3 多 48 个提交，未发布的改动列在 CHANGELOG 中。从源码构建需要 Rust 1.88+，README 称除平台默认库外无需其他系统库；knife update 需要 curl。
- 输入为分析者提供的二进制，knife 只读取而不运行它。反汇编支持 x86/x64 和 AArch64，audit 的数据流检查仅限 x86/x64；README 指出可达性结果为空并不代表不可达，因为间接派发不在直接调用图之内。WebAssembly 只有节区、导入导出和 WAT 视图，不做代码分析。仓库不含任何目标二进制：测试在代码中生成合成的 PE 和 ELF 样本，data/loldrivers.json 是公开 LOLDrivers 列表的快照，用于 SHA-256 匹配。
- knife mcp 通过 stdio 提供 MCP 服务；docs/MCP.md 列出 58 个工具，其中四个会把命名、注释、原型或暂存补丁写入项目数据库，而不修改二进制本身。可选的调查面板会把提示词和工具结果发送给使用者配置的模型服务（本地 Ollama、OpenRouter、OpenAI 或其他 OpenAI 兼容端点），托管服务的 API 密钥保存在操作系统凭据库中。可选适配器会调用另行安装的 Rizin，提供方文档还介绍了 Ghidra headless 和 capa 适配器；YARA-X 1.12 已内置用于规则扫描，GDB 运行时导出器有文档说明但尚未开放。
- CI 在 Ubuntu、Windows 和 macOS 上运行 cargo build 与 test，并运行 cargo fmt 和 clippy。README 将 audit 结果描述为参数来源符合某种缺陷模式的调用点；其中关于 7z.dll、kernel32.dll 和 CVE-2017-11882 的数据均为作者自己的结果。
- 采用 MIT（2026，0xblack）。LOLDrivers 快照来自该项目的公开 API，Rizin、Ghidra、capa 和 YARA-X 保留各自许可证。仓库中的 AGENTS.md 是写给编程智能体的贡献指南。

## 一手来源

1. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/README.md>
2. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/Cargo.toml>
3. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/LICENSE>
4. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/CHANGELOG.md>
5. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/docs/MCP.md>
6. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/docs/external-providers.md>
7. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/docs/investigation-desk.md>
8. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/docs/gdb-provider-validation.md>
9. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/docs/case-study-eqnedt32.md>
10. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/scripts/gen-loldrivers.mjs>
11. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/.github/workflows/ci.yml>
12. <https://github.com/bl4ckr0ss3/knife/blob/f260b87ffc54ae5c8c56cc31351334d209228745/AGENTS.md>
13. <https://github.com/bl4ckr0ss3/knife/releases/tag/v1.8.3>
14. <https://docs.rs/crate/reknife/1.8.0>

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

- [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) · 工具
- [GREASE 欠约束符号执行二进制分析工具](https://awesomerea.org/zh/resources/grease/index.md) · 工具

## 关于此条目

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