LIEF(lief-project/lief)是一个用于解释并重新编写 ELF、PE、Mach-O 等可执行文件格式的 C++ 库。ELF 是 Linux 使用的二进制格式,PE 是 Windows 使用的,Mach-O 则是 macOS 使用的,LIEF 将这些格式抽象为一项共同的功能。该仓库的最新版本是 1.0.0,但所提供的信息中没有包含 1.0.0 究竟改动了什么。
这个库的核心并不只是解析,而是还能改写。它被直接用于分析并重写可执行文件结构的工作,README 中说明支持解析 ELF、PE、MachO、COFF、OAT、DEX、VDEX、ART。它还提供运行时信息和调试信息(DWARF、PDB)、Objective-C 元数据、反汇编器与汇编器功能,以及 Ghidra、BinaryNinja 插件。C++、Python、Rust API 为官方提供,Node.js API 则仅属非官方。许可证为 Apache-2.0,GitHub 星标数为 5601,项目于 2017 年 3 月 16 日启动。
不过,证据止步之处也很明确。性能对比数值、采用案例和发布说明在所给信息中都不存在。新鲜度、技术、质量三项评分为空,只有动量评分以 10 分为满分仅得 1.8 分,偏低。在自行开发分析并改写二进制结构的工具时,它值得纳入考虑;但 1.0.0 究竟改动了什么,在查阅发布说明之前无法判断。