위키득계정 ↗
기술

LIEF

LIEF기술
분류
바이너리 형식 처리 라이브러리
대표 형식
ELF PE Mach-O
주요 작업
파싱 수정 추상화
주요 API
C플러스플러스 Python Rust
LIEF는 실행 파일 형식을 읽고 수정하며 공통 구조로 다루는 크로스플랫폼 라이브러리다. ELF·PE·Mach-O 등을 프로그램 API로 분석하는 데 사용된다.

파일 구조를 프로그램으로 다루기

실행 파일의 섹션과 심벌, 진입점 같은 정보를 읽어 분석할 수 있다. 형식마다 다른 구조를 공통 개념으로 묶는 기능도 있다. 파일 구조를 읽는 작업은 기계 명령을 실행하거나 프로그램의 전체 동작을 검증하는 작업과 다르다.

일부 구조 수정

섹션을 더하거나 심벌 이름을 바꾸는 등 지원하는 항목을 수정할 수 있다. 변경한 파일이 실제 환경에서 동작하는지는 별도로 확인해야 한다. 주소 관계나 재배치, 서명처럼 다른 구조와 연결되는 정보도 있기 때문이다.

기본 기능과 확장 기능

추가 디버깅 정보나 런타임, 디스어셈블 관련 기능은 확장 제공 범위와 구분되어 있다. 원하는 기능이 기본 패키지에 모두 포함됐다고 가정하지 않는다. 사용하는 언어 바인딩과 배포 버전, 해당 형식의 수정 지원을 확인한다.

관련 문서

Ghidra / RetDec / Rizin / Capstone