Unified abstraction
Work with symbols, sections, relocations, and entry points through shared concepts across executable formats.
GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing lief.re — LIEF - Library to Instrument Executable Formats New
LIEF 1.0.0 is available
→ LIEF Library to Instrument Executable FormatsParse, inspect, modify, and build ELF, PE, Mach-O, and more through one consistent C++, Python, or Rust API. Apache-2.0 Cross-platform
binary / architecture ELF
PE
Mach-O
DWARF
PDB
Disassembler
Assembler
Battle-tested binary infrastructure 10+years of continuous development 1,000,000+installs every month Built for binary workflows Explore the architectureOne Library. Every Layer.Move from raw executable file formats to a high-level representation, make precise changes, then write a valid binary back to disk. Unified abstractionWork with symbols, sections, relocations, and entry points through shared concepts across executable formats. Parse and inspectOpen binaries from files or memory and explore their structure without booting a heavyweight reverse-engineering stack. Modify and rebuildAdd sections, change symbols, patch metadata, and serialize the result with format-aware builders. A comprehensive API Binary insight in a few lines.The same concepts stay recognizable whether you work in Python, C++, or Rust. 01 Cross-formatStart with a generic binary. 02 Typed and discoverableUse a structured object model. 03 Ready to rewriteTurn inspection code into transformation code without changing tools.
inspect.py Live binary transformation Watch one executable move through LIEF.Follow a documented x86-64 ELF workflow from parsing and format analysis to an assembled patch and a rebuilt binary. Explore the Python API
instrument.py
01 / LOADLIEF Core Parsed executableELF64 · x86-64 entry 0x40107002 / INSPECT + EXTENDLIEF Core Format-aware mutationPT_LOAD added · R-- mapped at 0x40c00003 / DISASSEMBLELIEF Extended Decoded instructions 0x401070 push rbp0x401071 mov rbp, rsp0x40107f call 0x40103004 / ASSEMBLE + PATCHLIEF Extended Instruction replaced in place5 bytes assembled e8 ac ff ff ff → 90 90 90 90 9005 / REWRITELIEF Core Builder completedemo.instrumented ELF64 · x86-64 · readyELF
demo.elfdemo.instrumented64-bit / x86-64
parsed PHDR
PT_LOAD · .text
PT_LOAD · .rodata
PT_LOAD · .data
PT_LOAD · LIEF 0x40107f e8acffffff 9090909090 Pipeline
Python · x86-64 ELF API noteDisassembly and assembly are LIEF Extended capabilities. The mutation and rebuild stages use the open-source core API. LIEF Extended Go beyond file formatsAdvanced assembly, disassembly, DWARF and PDB tooling build on the same familiar LIEF model for deeper binary reversereverseesrever engineering workflows. AssemblerAssemble x86-64, ARM64, RISC-V instructions directly from the API. DisassemblerDecode machine code and connect instructions to executable metadata. DWARF editorInspect and transform rich debug information with structured APIs. PDB supportWork with Microsoft program databases alongside the binary they describe. ![]() Quansight supports LIEF's continued development. Meet QuansightSustain the project Support.Sponsorship gives LIEF maintainers the time to improve format coverage, respond to ecosystem changes, and build features the community can rely on.
Project updates View all postsFrom the LIEF blog.Release notes, format deep dives, and engineering stories from the project. ![]()
Romain Thomas LIEF v1.0.0LIEF 1.0.0: a new cross-platform Runtime API, faster Rust bindings, stable-ABI and free-threaded Python wheels Read article![]()
Romain Thomas LIEF v0.17.0LIEF 0.17.0: Binary Ninja and Ghidra plugins, contextual assembly patching, a refactored PE module with TLS, import, and export editing, lief-patchelf, and … Read article![]()
Romain Thomas LIEF patchelflief-patchelf: a LIEF-based reimplementation of NixOS patchelf to change the interpreter, add dependencies, and edit RPATH/RUNPATH, with prebuilt binaries. Read article |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |