Library to instrument executable formats
Project Links
Meta
Author: Romain Thomas
Requires Python: >=3.8
Classifiers
Development Status
- 4 - Beta
Programming Language
- Python :: 3
- C++
Topic
- Software Development :: Libraries
About
The purpose of this project is to provide a cross platform library that can parse, modify and abstract ELF, PE and MachO formats.
Main features:
Parsing: LIEF can parse ELF, PE, MachO, OAT, DEX, VDEX, ART and provides an user-friendly API to access to format internals.
Modify: LIEF enables to modify some parts of these formats
Abstract: Three formats have common features like sections, symbols, entry point… LIEF factors them.
API: LIEF can be used in C, C++, Python and Rust
LIEF Extended:
DWARF/PDB Support
Objective-C Metadata
dyld shared cache
Checkout: https://lief.re/doc/latest/extended/intro.html for the details
Getting Started
$ pip install lief
import lief
elf = lief.ELF.parse("/bin/ls")
for section in elf.sections:
print(section.name, len(section.content))
pe = lief.PE.parse("cmd.exe")
for imp in pe.imports:
print(imp.name)
fat = lief.MachO.parse("/bin/dyld")
for macho in fat:
for sym in macho.symbols:
print(sym)
Documentation
Contact
Mail: contact at lief.re
Discord: LIEF
0.17.6
Mar 18, 2026
0.17.5
Mar 08, 2026
0.17.4
Feb 21, 2026
0.17.3
Jan 24, 2026
0.17.2
Jan 03, 2026
0.17.1
Oct 25, 2025
0.17.0
Sep 14, 2025
0.16.7
Oct 05, 2025
0.16.6
May 29, 2025
0.16.5
Apr 19, 2025
0.16.4
Feb 23, 2025
0.16.3
Feb 02, 2025
0.16.2
Jan 01, 2025
0.16.1
Dec 26, 2024
0.16.0
Dec 10, 2024
0.15.1
Jul 23, 2024
0.15.0
Jul 21, 2024
0.14.1
Feb 11, 2024
0.14.0
Jan 20, 2024
0.13.2
Jun 17, 2023
0.13.1
May 28, 2023
0.13.0
Apr 14, 2023
0.12.3
Nov 01, 2022
0.12.2
Oct 02, 2022
0.12.1
Apr 08, 2022
0.12.0
Mar 26, 2022
0.11.5
May 23, 2021
0.11.4
Mar 10, 2021
0.11.3
Mar 02, 2021
0.11.2
Feb 24, 2021
0.11.1
Feb 22, 2021
0.11.0
Jan 18, 2021
0.10.1
Nov 30, 2019
0.10.0
Nov 24, 2019
0.9.0
Jun 10, 2018
0.8.3.post3
Nov 21, 2017
0.8.3
0.8.2.post1
Nov 21, 2017
0.8.2
0.8.1.post1
Nov 21, 2017
0.8.1
0.8.0.post7
Nov 21, 2017
0.8.0
Wheel compatibility matrix
Files in release
lief-0.17.6-cp310-cp310-macosx_11_0_arm64.whl (2.8MiB)
lief-0.17.6-cp310-cp310-macosx_11_0_x86_64.whl (3.0MiB)
lief-0.17.6-cp310-cp310-manylinux2014_aarch64.whl (3.5MiB)
lief-0.17.6-cp310-cp310-manylinux_2_28_i686.whl (3.3MiB)
lief-0.17.6-cp310-cp310-manylinux_2_28_x86_64.whl (3.2MiB)
lief-0.17.6-cp310-cp310-musllinux_1_2_aarch64.whl (3.4MiB)
lief-0.17.6-cp310-cp310-musllinux_1_2_i686.whl (3.7MiB)
lief-0.17.6-cp310-cp310-musllinux_1_2_x86_64.whl (3.5MiB)
lief-0.17.6-cp310-cp310-win32.whl (3.3MiB)
lief-0.17.6-cp310-cp310-win_amd64.whl (3.5MiB)
lief-0.17.6-cp311-cp311-macosx_11_0_arm64.whl (2.9MiB)
lief-0.17.6-cp311-cp311-macosx_11_0_x86_64.whl (3.0MiB)
lief-0.17.6-cp311-cp311-manylinux2014_aarch64.whl (3.5MiB)
lief-0.17.6-cp311-cp311-manylinux_2_28_i686.whl (3.3MiB)
lief-0.17.6-cp311-cp311-manylinux_2_28_x86_64.whl (3.2MiB)
lief-0.17.6-cp311-cp311-musllinux_1_2_aarch64.whl (3.4MiB)
lief-0.17.6-cp311-cp311-musllinux_1_2_i686.whl (3.7MiB)
lief-0.17.6-cp311-cp311-musllinux_1_2_x86_64.whl (3.5MiB)
lief-0.17.6-cp311-cp311-win32.whl (3.3MiB)
lief-0.17.6-cp311-cp311-win_amd64.whl (3.5MiB)
lief-0.17.6-cp311-cp311-win_arm64.whl (3.3MiB)
lief-0.17.6-cp312-cp312-macosx_11_0_arm64.whl (2.9MiB)
lief-0.17.6-cp312-cp312-macosx_11_0_x86_64.whl (3.0MiB)
lief-0.17.6-cp312-cp312-manylinux2014_aarch64.whl (3.5MiB)
lief-0.17.6-cp312-cp312-manylinux_2_28_i686.whl (3.3MiB)
lief-0.17.6-cp312-cp312-manylinux_2_28_x86_64.whl (3.2MiB)
lief-0.17.6-cp312-cp312-musllinux_1_2_aarch64.whl (3.4MiB)
lief-0.17.6-cp312-cp312-musllinux_1_2_i686.whl (3.7MiB)
lief-0.17.6-cp312-cp312-musllinux_1_2_x86_64.whl (3.5MiB)
lief-0.17.6-cp312-cp312-win32.whl (3.3MiB)
lief-0.17.6-cp312-cp312-win_amd64.whl (3.5MiB)
lief-0.17.6-cp312-cp312-win_arm64.whl (3.3MiB)
lief-0.17.6-cp313-cp313-macosx_11_0_arm64.whl (2.9MiB)
lief-0.17.6-cp313-cp313-macosx_11_0_x86_64.whl (3.0MiB)
lief-0.17.6-cp313-cp313-manylinux2014_aarch64.whl (3.5MiB)
lief-0.17.6-cp313-cp313-manylinux_2_28_i686.whl (3.3MiB)
lief-0.17.6-cp313-cp313-manylinux_2_28_x86_64.whl (3.2MiB)
lief-0.17.6-cp313-cp313-musllinux_1_2_aarch64.whl (3.4MiB)
lief-0.17.6-cp313-cp313-musllinux_1_2_i686.whl (3.7MiB)
lief-0.17.6-cp313-cp313-musllinux_1_2_x86_64.whl (3.5MiB)
lief-0.17.6-cp313-cp313-win32.whl (3.3MiB)
lief-0.17.6-cp313-cp313-win_amd64.whl (3.5MiB)
lief-0.17.6-cp313-cp313-win_arm64.whl (3.3MiB)
lief-0.17.6-cp314-cp314-macosx_11_0_arm64.whl (2.9MiB)
lief-0.17.6-cp314-cp314-macosx_11_0_x86_64.whl (3.0MiB)
lief-0.17.6-cp314-cp314-manylinux2014_aarch64.whl (3.5MiB)
lief-0.17.6-cp314-cp314-manylinux_2_28_i686.whl (3.3MiB)
lief-0.17.6-cp314-cp314-manylinux_2_28_x86_64.whl (3.2MiB)
lief-0.17.6-cp314-cp314-musllinux_1_2_aarch64.whl (3.4MiB)
lief-0.17.6-cp314-cp314-musllinux_1_2_i686.whl (3.7MiB)
lief-0.17.6-cp314-cp314-musllinux_1_2_x86_64.whl (3.5MiB)
lief-0.17.6-cp314-cp314-win32.whl (3.3MiB)
lief-0.17.6-cp314-cp314-win_amd64.whl (3.5MiB)
lief-0.17.6-cp314-cp314-win_arm64.whl (3.3MiB)
lief-0.17.6-cp38-cp38-macosx_11_0_arm64.whl (2.8MiB)
lief-0.17.6-cp38-cp38-macosx_11_0_x86_64.whl (3.0MiB)
lief-0.17.6-cp38-cp38-manylinux2014_aarch64.whl (3.5MiB)
lief-0.17.6-cp38-cp38-manylinux_2_28_i686.whl (3.3MiB)
lief-0.17.6-cp38-cp38-manylinux_2_28_x86_64.whl (3.2MiB)
lief-0.17.6-cp38-cp38-musllinux_1_2_aarch64.whl (3.4MiB)
lief-0.17.6-cp38-cp38-musllinux_1_2_i686.whl (3.7MiB)
lief-0.17.6-cp38-cp38-musllinux_1_2_x86_64.whl (3.5MiB)
lief-0.17.6-cp38-cp38-win32.whl (3.3MiB)
lief-0.17.6-cp38-cp38-win_amd64.whl (3.5MiB)
lief-0.17.6-cp39-cp39-macosx_11_0_arm64.whl (2.9MiB)
lief-0.17.6-cp39-cp39-macosx_11_0_x86_64.whl (3.0MiB)
lief-0.17.6-cp39-cp39-manylinux2014_aarch64.whl (3.5MiB)
lief-0.17.6-cp39-cp39-manylinux_2_28_i686.whl (3.3MiB)
lief-0.17.6-cp39-cp39-manylinux_2_28_x86_64.whl (3.2MiB)
lief-0.17.6-cp39-cp39-musllinux_1_2_aarch64.whl (3.4MiB)
lief-0.17.6-cp39-cp39-musllinux_1_2_i686.whl (3.7MiB)
lief-0.17.6-cp39-cp39-musllinux_1_2_x86_64.whl (3.5MiB)
lief-0.17.6-cp39-cp39-win32.whl (3.3MiB)
lief-0.17.6-cp39-cp39-win_amd64.whl (3.5MiB)
lief-0.17.6.tar.gz (7.0KiB)
No dependencies