lief-project/LIEF

LIEF - Library to Instrument Executable Formats (C++, Python, Rust)

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 9 minutes ago
Added to GitGenius on September 12th, 2026
Created on March 16th, 2017
Open Issues & Pull Requests: 30 (+0)
GitHub issues: Enabled
Number of forks: 749
Total Stargazers: 5,562 (+0)
Total Subscribers: 129 (+0)

Repository Insights (GitGenius)

Median issue/PR response: N/A
Mean response time: 63.4 days
90th percentile: 7.4 days
Tracked items: 224

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Work labelled "PE" is answered fastest, typically in under an hour, while "Nice to have" waits about 34 hours. Only 11% of issues opened in the past year have been closed. Three people close 94% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 11
New in 7 days: 0
Closed in 7 days: 1
Avg open age: 650 days
Stale 30+ days: 11
Stale 90+ days: 10

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Builder (37)
  • ELF (37)
  • PE (32)
  • bug (31)
  • MachO (28)
  • Parser (24)
  • Nice to have (22)
  • API (16)

Most active issues this week

Detailed Description

LIEF is a cross-platform library for parsing, modifying, and abstracting executable file formats.

The tool addresses the need to work with binary executables across different platforms and architectures. It provides a unified interface for handling ELF, PE, MachO, COFF, OAT, DEX, VDEX, and ART formats, allowing developers to parse their internal structures, modify components like sections and symbols, and access common features through abstracted APIs. This eliminates the need to write separate code for each format's quirks and structures.

Developers working on reverse engineering, malware analysis, binary instrumentation, or security research should consider this tool. It suits projects that need to inspect or modify executables across Windows, Linux, and macOS without reimplementing format-specific logic. The library is particularly valuable for those building tools that must handle multiple executable types uniformly. Beyond basic parsing and modification, the tool offers extended capabilities including DWARF and PDB debug information support, Objective-C metadata extraction, Dyld Shared Cache handling, and built-in disassembly and assembly for multiple architectures including AArch64, x86/x86-64, ARM, RISC-V, MIPS, PowerPC, and eBPF. Plugins for Ghidra and Binary Ninja integrate the tool into existing reverse-engineering workflows.

The project maintains active development with regular updates to its documentation and tutorials covering practical use cases from basic format manipulation to advanced scenarios like transforming ELF executables into libraries and analyzing Android formats. The codebase supports multiple language bindings including C++, Python, and Rust, enabling integration into diverse development environments. The tool is backed by institutional sponsorship and provides comprehensive reference documentation alongside hands-on tutorials demonstrating real-world applications.