Repolode
lief-project

lief-project/LIEF

跨平台的 C++ 库,提供 Python 和 Rust 绑定,用于解析、修改和抽象 ELF、PE、Mach-O 等可执行文件格式。

Star
5,635
Fork
761
未关闭 Issue
37
最近提交
昨天

这是什么?

LIEF 是一个用于解析、修改和抽象可执行文件格式的库,支持 ELF、PE、Mach-O、COFF,以及 OAT、DEX、VDEX、ART 等 Android 相关格式。它提供结构化的 API 来查看节区、符号、头部等内部信息,并允许修改部分内容,例如添加节区或重命名符号。对于节区、符号、入口点等共有概念,它还提供统一的抽象层。

该库提供 C++、Python 和 Rust 绑定,可通过 CMake、pip、Homebrew 和 Cargo 安装。扩展功能包括运行时模块、DWARF 与 PDB 调试信息支持、Objective-C 元数据解析、dyld 共享缓存提取,以及覆盖 AArch64、x86-64、ARM、RISC-V 等架构的反汇编器和汇编器。项目还提供 Ghidra 和 Binary Ninja 插件。

核心功能

  • 01通过易用的 API 解析 ELF、PE、Mach-O、COFF、OAT、DEX、VDEX 和 ART 文件。
  • 02修改二进制文件的部分内容,例如添加节区或更改符号名称。
  • 03为不同格式的节区、符号和入口点提供统一的抽象接口。
  • 04提供 C++、Python 和 Rust 绑定。
  • 05包含多种架构的反汇编器和汇编器。
  • 06支持 DWARF 和 PDB 调试信息以及 Objective-C 元数据。

适用场景

  • 跨 Windows、Linux 和 macOS 分析恶意软件或可疑二进制文件。
  • 在逆向工程流程中编写脚本,检查或修补可执行文件。
  • 作为应用分析的一部分,检查 Android 的 DEX、OAT 或 ART 文件。
  • 构建需要跨平台解析器的二进制分析工具。

快速上手

  1. 1

    从 PyPI 安装 Python 包

    pip install lief
  2. 2

    解析二进制文件并列出其 ELF 节

使用前须知

  • 夜间构建版和 2.0 开发版可能引入不兼容的变更。
  • 部分扩展功能(如 LIEF Extended 服务)需要通过 GitHub OAuth 登录。

收录于专题

标签

常见问题

LIEF 是什么?
跨平台的 C++ 库,提供 Python 和 Rust 绑定,用于解析、修改和抽象 ELF、PE、Mach-O 等可执行文件格式。 LIEF 是一个用于解析、修改和抽象可执行文件格式的库,支持 ELF、PE、Mach-O、COFF,以及 OAT、DEX、VDEX、ART 等 Android 相关格式。它提供结构化的 API 来查看节区、符号、头部等内部信息,并允许修改部分内容,例如添加节区或重命名符号。对于节区、符号、入口点等共有概念,它还提供统一的抽象层。
LIEF 可以免费使用吗?用的什么许可证?
LIEF 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
LIEF 还在维护吗?
活跃维护中。LIEF 最近一次提交是在 2026年11月6日。
LIEF 适合用来做什么?
跨 Windows、Linux 和 macOS 分析恶意软件或可疑二进制文件。 在逆向工程流程中编写脚本,检查或修补可执行文件。 作为应用分析的一部分,检查 Android 的 DEX、OAT 或 ART 文件。 构建需要跨平台解析器的二进制分析工具。
LIEF 怎么安装和运行?
从 PyPI 安装 Python 包: pip install lief 解析二进制文件并列出其 ELF 节
在哪里获取 LIEF?
源代码和安装说明在 GitHub 上:https://github.com/lief-project/LIEF

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目