Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
LIEF — Кроссплатформенная библиотека для анализа, модификации и абстракции исполняемых форматов ELF, PE и MachO. Поддерживает API на C++, Python и Rust с функциями дизассемблера, ассемблера и отладочной информации. | Kitploit
Инструменты/GitHubGitHub/lief-project/lief
Безопасность AndroidСтатический анализИнструменты шифрования/дешифрованияБезопасность iOSОбратная инженерияОтладчикиАнализ вредоносных программАнализ Бинарных ФайловОбучение и ОбразованиеАнализ Прошивок
GitHublief-project/lief

LIEF

5.5k7461 день назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Кроссплатформенная библиотека для анализа, модификации и абстракции исполняемых форматов ELF, PE и MachO. Поддерживает API на C++, Python и Rust с функциями дизассемблера, ассемблера и отладочной информации.

РепозиторийСайт



Блог • Документация • О проекте


О проекте

Цель этого проекта — предоставить кроссплатформенную библиотеку для разбора, изменения и абстрагирования форматов ELF, PE и MachO.

Основные возможности:

  • Разбор: LIEF может разбирать ELF, PE, MachO, COFF, OAT, DEX, VDEX, ART и предоставляет удобный API для доступа к их внутреннему устройству.
  • Изменение: LIEF можно использовать для изменения некоторых частей этих форматов (добавление секции, изменение имени символа, ...)
  • Абстракция: Три формата имеют общие особенности — секции, символы, точку входа... LIEF объединяет их.
  • API: Вы можете использовать LIEF через C++, Python, Rust, C и Node.js (неофициальный, созданный ИИ)

Расширенные возможности:

  • Runtime
  • Поддержка DWARF/PDB
  • Метаданные Objective-C
  • Dyld Shared Cache с поддержкой извлечения Dylib
  • Дизассемблер: AArch64, x86/x86-64, ARM, RISC-V, Mips, PowerPC, eBPF
  • Ассемблер: AArch64, x86/x86-64, RISC-V

Плагины:

  • Ghidra
  • BinaryNinja

Спонсоры



Содержание

  • О проекте
  • Загрузка / Установка
  • Начало работы
  • Блог
  • Документация
    • Rust
    • Sphinx
    • Doxygen
    • Уроки:
      • Разбор и изменение форматов
      • Работа с символами ELF
      • Ресурсы PE
      • Преобразование исполняемого файла ELF в библиотеку
      • Как использовать frida на устройстве без root
      • Форматы Android
      • Модификация Mach-O
      • ELF Coredump
      • PE Authenticode
  • Контакт
  • О проекте
    • Авторы
    • Лицензия
    • Bibtex

Загрузка / Установка

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

Чтобы установить последнюю версию (релиз):

root@kitploit:~
pip install lief

Чтобы установить ночную сборку:

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

Пакеты

  • 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

Вот руководства по установке и интеграции LIEF:

  • Python
  • Visual Studio
  • XCode
  • CMake

Начало работы

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;
}

Документация

  • Основная документация
  • Doxygen
  • Rust

Контакт

  • Почта: contact at lief re
  • Discord: LIEF

О проекте

Авторы

Romain Thomas (@rh0main) - ранее в Quarkslab

Лицензия

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"
}
Скачать инструмент