Binwalk 是一款快速、易用的工具,用于分析、逆向工程和提取固件镜像。
此分支的创建是为了修复 binwalk v2 的一些悬而未决的问题,并使其保持良好的状态。它已实现了帮助用户和发行版打包者的目的。然而,由于原作者最近用 Rust 重写了 binwalk 并再次积极开发,因此不再需要维护 binwalk v2。用户和贡献者应迁移到 binwalk v3。这个新版本还提供了 Rust 库,请参阅 https://github.com/ReFirmLabs/binwalk/wiki/Using-the-Rust-Library。
因此,此仓库将在 2025 年 12 月 12 日实际达到 EOL(生命周期终止),届时此仓库可能会被归档或移除。
这是 ReFirmLabs 原始代码的一个复刻(fork)。此复刻由社区维护,其维护者与原始作者或原始公司没有任何关系(尽管我们非常感谢他们的工作)。
如果你想贡献,请随时提交 issue、拉取请求(pull request),甚至要求加入仓库以帮助审查和合并 PR。
似乎有一个维护良好的替代品,名为 unblob。根据一些报告,它具有更好的提取能力(能够提取更多数据且速度更快)。缺点是它检测的文件类型不如 binwalk 多。另一个重要区别是依赖项的数量:binwalk 不需要任何依赖(它们是可选的),而 unblob 依赖近 20 个包。
在 Binwalk v2.3.3 之前,提取的归档文件可能会创建指向文件系统任意位置的符号链接,如果后续的提取工具盲目地跟随这些符号链接,则可能导致目录遍历攻击。更一般地,Binwalk 使用许多第三方提取工具,这些工具可能存在未修补的安全问题;Binwalk v2.3.3 及更高版本允许通过 run-as 命令行选项以非特权用户身份运行外部提取工具(这要求 Binwalk 本身以 root 权限运行)。此外,除非指定 --run-as=root,否则 Binwalk v2.3.3 及更高版本将拒绝以 root 身份执行提取。
更多信息请参阅 Wiki