Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
LIEF — ELF, PE 및 MachO 실행 파일 형식을 파싱, 수정, 추상화하는 크로스 플랫폼 라이브러리입니다. 디스어셈블러, 어셈블러 및 디버그 정보 기능을 갖춘 C++, Python, Rust API를 지원합니다. | Kitploit
도구/GitHubGitHub/lief-project/lief
Android SecurityEmbedded Systems SecurityStatic AnalysisEncryption/Decryption ToolsiOS SecurityMobile App PentestingReverse EngineeringDebuggersMalware AnalysisMobile SecurityBinary AnalysisLearning & Education
5.5k746371일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
AI-Assisted Reversing
Firmware Analysis
Binary Exploitation
AI-Assisted Reversing #17위
Android Security #17위
Binary Analysis #9위
Binary Exploitation #14위
Embedded Systems Security #13위
Firmware Analysis #11위
Malware Analysis #16위
Mobile App Pentesting #17위
Mobile Security #17위
Reverse Engineering #14위
Static Analysis #8위
GitHublief-project/lief

LIEF

ELF, PE 및 MachO 실행 파일 형식을 파싱, 수정, 추상화하는 크로스 플랫폼 라이브러리입니다. 디스어셈블러, 어셈블러 및 디버그 정보 기능을 갖춘 C++, Python, Rust API를 지원합니다.

저장소 보기웹사이트



블로그 • 문서 • 소개


소개

이 프로젝트의 목적은 ELF, PE, MachO 포맷을 파싱, 수정, 추상화할 수 있는 크로스 플랫폼 라이브러리를 제공하는 것입니다.

주요 기능:

  • 파싱: LIEF는 ELF, PE, MachO, COFF, OAT, DEX, VDEX, ART를 파싱할 수 있으며, 내부 구조에 접근할 수 있는 사용자 친화적인 API를 제공합니다.
  • 수정: LIEF는 이러한 포맷의 일부를 수정하는 데 사용할 수 있습니다(섹션 추가, 심볼 이름 변경 등).
  • 추상화: 세 가지 포맷은 섹션, 심볼, 엔트리 포인트 등 공통된 특징을 가지고 있습니다. 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

스폰서



목차

  • 소개
  • 다운로드 / 설치
  • 시작하기
  • 블로그
  • 문서
    • Rust
    • Sphinx
    • Doxygen
    • 튜토리얼:
      • 포맷 파싱 및 조작
      • ELF 심볼 다루기
      • PE 리소스
      • ELF 실행 파일을 라이브러리로 변환하기
      • 루팅되지 않은 기기에서 frida 사용하기
      • Android 포맷
      • Mach-O 수정
      • ELF 코어덤프
      • PE Authenticode
  • 연락처
  • 소개
    • 저자
    • 라이선스
    • Bibtex

다운로드 / 설치

C++

find_package(LIEF REQUIRED)
target_link_libraries(my-project LIEF::LIEF)

Rust

[package]
name    = "my-awesome-project"
version = "0.0.1"
edition = "2024"

[dependencies]
lief = "1.0.0"

Homebrew

brew install lief

Python

최신 버전(릴리스)을 설치하려면:

pip install lief

나이틀리 빌드를 설치하려면:

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

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

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++

#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

@MISC {LIEF,
  author       = "Romain Thomas",
  title        = "LIEF - Library to Instrument Executable Formats",
  howpublished = "https://lief.quarkslab.com/",
  month        = "apr",
  year         = "2017"
}
도구 다운로드