Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
LIEF — ELF、PE、MachO の実行可能ファイル形式を解析・変更・抽象化するクロスプラットフォームライブラリ。C++、Python、Rust の API をサポートし、逆アセンブラ、アセンブラ、デバッグ情報の各機能を備えています。 | Kitploit
ツール/GitHubGitHub/lief-project/lief
Androidセキュリティ静的分析暗号化/復号化ツールiOSセキュリティリバースエンジニアリングデバッガマルウェア分析バイナリ解析学習と教育ファームウェア解析
GitHublief-project/lief

LIEF

ELF、PE、MachO の実行可能ファイル形式を解析・変更・抽象化するクロスプラットフォームライブラリ。C++、Python、Rust の API をサポートし、逆アセンブラ、アセンブラ、デバッグ情報の各機能を備えています。

5.5k7464日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見るウェブサイト



Blog • Documentation • About


概要

このプロジェクトの目的は、ELF、PE、MachO 形式を解析・変更・抽象化するためのクロスプラットフォームライブラリを提供することです。

主な機能:

  • 解析: LIEF は ELF、PE、MachO、COFF、OAT、DEX、VDEX、ART を解析でき、その内部構造にアクセスするためのユーザーフレンドリーな API を提供します。
  • 変更: LIEF を使用して、これらの形式の一部(セクションの追加、シンボル名の変更など)を変更できます。
  • 抽象化: 3つの形式には、セクション、シンボル、エントリポイントなどの共通機能があります。LIEF はこれらを共通化します。
  • API: LIEF は C++、Python、Rust、C、および Node.js(非公式、AI生成)を介して使用できます。

拡張機能:

  • ランタイム
  • 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

スポンサー



目次

  • 概要
  • ダウンロード / インストール
  • はじめに
  • Blog
  • ドキュメント
    • Rust
    • Sphinx
    • Doxygen
    • チュートリアル:
      • 形式の解析と操作
      • ELF シンボルを操作する
      • PE リソース
      • ELF 実行ファイルをライブラリに変換する
      • root化されていないデバイスで frida を使用する方法
      • Android 形式
      • Mach-O の変更
      • ELF コアダンプ
      • 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)
  • ナイトリー:
    • 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"
}
ツールをダウンロード