Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
LIEF — Plattformübergreifende Bibliothek zum Parsen, Modifizieren und Abstrahieren von ELF-, PE- und MachO-Ausführungsformaten. Unterstützt C++-, Python- und Rust-APIs mit Funktionen für Disassembler, Assembler und Debug-Informationen. | Kitploit
Tools/GitHubGitHub/lief-project/lief
Android-SicherheitStatische AnalyseVerschlüsselungs-/EntschlüsselungstoolsiOS-SicherheitReverse EngineeringDebuggerMalware-AnalyseBinäranalyseLernen & BildungFirmware-Analyse
GitHublief-project/lief

LIEF

5.5k746vor 1 TagVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Plattformübergreifende Bibliothek zum Parsen, Modifizieren und Abstrahieren von ELF-, PE- und MachO-Ausführungsformaten. Unterstützt C++-, Python- und Rust-APIs mit Funktionen für Disassembler, Assembler und Debug-Informationen.

Repository anzeigenWebseite



Blog • Dokumentation • Über


Über

Das Ziel dieses Projekts ist die Bereitstellung einer plattformübergreifenden Bibliothek zum Parsen, Modifizieren und Abstrahieren von ELF-, PE- und MachO-Formaten.

Hauptfunktionen:

  • Parsing: LIEF kann ELF, PE, MachO, COFF, OAT, DEX, VDEX, ART parsen und bietet eine benutzerfreundliche API, um auf deren Interna zuzugreifen.
  • Modifizieren: LIEF kann verwendet werden, um bestimmte Teile dieser Formate zu modifizieren (Hinzufügen einer Sektion, Ändern eines Symbolnamens, ...)
  • Abstraktion: Die drei Formate haben gemeinsame Merkmale wie Sektionen, Symbole, Einstiegspunkt ... LIEF bündelt sie.
  • API: LIEF kann über C++, Python, Rust, C und Node.js verwendet werden (inoffiziell, KI-generiert)

Erweiterte Funktionen:

  • Laufzeit
  • DWARF/PDB-Unterstützung
  • Objective-C-Metadaten
  • Dyld Shared Cache mit Unterstützung für das Extrahieren von Dylibs
  • Disassembler: AArch64, x86/x86-64, ARM, RISC-V, Mips, PowerPC, eBPF
  • Assembler: AArch64, x86/x86-64, RISC-V

Plugins:

  • Ghidra
  • BinaryNinja

Sponsoren



Inhalt

  • Über
  • Downloads / Installation
  • Erste Schritte
  • Blog
  • Dokumentation
    • Rust
    • Sphinx
    • Doxygen
    • Tutorials:
      • Formate parsen und manipulieren
      • Mit ELF-Symbolen spielen
      • PE-Ressourcen
      • Ein ELF-Programm in eine Bibliothek umwandeln
      • Verwendung von frida auf einem nicht gerooteten Gerät
      • Android-Formate
      • Mach-O-Modifikation
      • ELF-Coredump
      • PE-Authenticode
  • Kontakt
  • Über
    • Autoren
    • Lizenz
    • BibTeX

Downloads / Installation

C++

root@kitploit:~
find_package(LIEF REQUIRED)
target_link_libraries(my-project LIEF::LIEF)

Rust

root@kitploit:~
[package]
name    = "my-awesome-project"
version = "0.0.1"
edition = "2024"

[dependencies]
lief = "1.0.0"

Homebrew

root@kitploit:~
brew install lief

Python

Um die neueste Version (Release) zu installieren:

root@kitploit:~
pip install lief

Um den Nightly-Build zu installieren:

root@kitploit:~
pip install [--user] --force-reinstall --index-url https://lief.s3-website.fr-par.scw.cloud/latest lief==2.0.0.dev0

Pakete

  • LIEF Extended: https://extended.lief.re (GitHub OAuth)
  • Nightly:
    • SDK: https://lief.s3-website.fr-par.scw.cloud/latest/sdk
    • Python Wheels: https://lief.s3-website.fr-par.scw.cloud/latest/lief
  • v1.0.0: https://github.com/lief-project/LIEF/releases/tag/1.0.0

Hier sind Anleitungen zum Installieren oder Integrieren von LIEF:

  • Python
  • Visual Studio
  • XCode
  • CMake

Erste Schritte

Python

root@kitploit:~
import lief

# ELF
binary = lief.parse("/usr/bin/ls")
for section in binary.sections:
    print(section.name, section.virtual_address)

# PE
binary = lief.parse(r"C:\Windows\explorer.exe")
if (rheader := binary.rich_header) is not None:
    print(rheader.key)

# Mach-O
binary = lief.parse("/usr/bin/ls")
if (fixups := binary.dyld_chained_fixups) is not None:
    print(fixups)

Rust

root@kitploit:~
use lief::Binary;
use lief::pe::debug::Entries::CodeViewPDB;

if let Some(Binary::PE(pe)) = Binary::parse(path.as_str()) {
    for entry in pe.debug() {
        if let CodeViewPDB(pdb_view) = entry {
            println!("{}", pdb_view.filename());
        }
    }
}

C++

root@kitploit:~
#include <iostream>
#include <LIEF/LIEF.hpp>

int main(int argc, char** argv) {
  // ELF
  if (std::unique_ptr<const LIEF::ELF::Binary> elf = LIEF::ELF::Parser::parse("/bin/ls")) {
    for (const LIEF::ELF::Section& section : elf->sections()) {
      std::cout << section.name() << ' ' << section.virtual_address() << '\n';
    }
  }

  // PE
  if (std::unique_ptr<const LIEF::PE::Binary> pe = LIEF::PE::Parser::parse("C:\\Windows\\explorer.exe")) {
    if (const LIEF::PE::RichHeader* rheader = pe->rich_header()) {
      std::cout << rheader->key() << '\n';
    }
  }

  // Mach-O
  if (std::unique_ptr<LIEF::MachO::FatBinary> macho = LIEF::MachO::Parser::parse("/bin/ls")) {
    for (const LIEF::MachO::Binary& bin : *macho) {
      if (const LIEF::MachO::DyldChainedFixups* fixups = bin.dyld_chained_fixups()) {
        std::cout << *fixups << '\n';
      }
    }
  }

  return 0;
}

Dokumentation

  • Hauptdokumentation
  • Doxygen
  • Rust

Kontakt

  • E-Mail: contact at lief re
  • Discord: LIEF

Über

Autoren

Romain Thomas (@rh0main) - Ehemals bei Quarkslab

Lizenz

Apache 2.0.

BibTeX

root@kitploit:~
@MISC {LIEF,
  author       = "Romain Thomas",
  title        = "LIEF - Library to Instrument Executable Formats",
  howpublished = "https://lief.quarkslab.com/",
  month        = "apr",
  year         = "2017"
}
Tool herunterladen