본문 바로가기

정보보안/악성코드 분석가

PE 파일 분석 개요

PE 파일이란?

1. 단어적 의미 

Portable Executable File Format 

 - Portable : 이동, 이식 가능한

 - Executable : 실행가능한

 

=> 이동 가능하게 설계되어 있으며 실행할 수 있는 파일의 구조.

* 하지만 PE 파일은 Windows에서만 동작하므로 완전한 의미의 "이동 가능"은 아님

 

2. 위키피디아 참조 

Windows에서 실행할 수 있는 파일의 형식을 정의한 구조.
즉, Windows 실행 파일(.exe, .dll, .sys 등)의 표준 파일 포맷을 의미

윈도우 버전이 바뀌더라도 실행가능하도록 한 바이너리 파일 구조.

 

+윈도우 로더가 실행 가능한 코드를 관리하는데 필요한 정보들을 캡슐화한 데이터 구조체

+링킹을 위한 동적라이브러리 참조, API 익스포트, 임포트 테이블, 자원관리 데이터, TLS 데이터를 포함

 

실행파일 컴파일 과정

1. 소스코드 작성 (ex. Source.h)

2, Compile 과정 : 모든 헤더파일과 소스파일을 합쳐 하나의 기계어 코드로 변환

3. 기계어 파일 생성  ( ex. Source.obj ) - 시스템 호환성 문제 있음. 

4. Link 과정 : DLL, 리소스데이터, Import, Export 테이블을 처리할 수 있는 정보를 윈도우에 약속된 규약에 맞춰 기입

5. 실행파일 생성 ( ex. Binary.exe ): 실행파일 로딩 시 PE Header 정보를 토대로 DLL을 로드, 메모리에 적재될 각종 리소스를 할당

 

PE 파일 분석에 사용되는 도구

🔹 PE 분석 도구 목록

카테고리 도구명
기본 PE 구조 분석 PEview, PE-bear, CFF Explorer, Stud_PE
패킹 탐지 및 서명 분석 PEiD, Detect It Easy (DIE), Exeinfo PE
악성코드 정적 분석 PE Studio, PreVFrame.py
역공학 및 디버깅 IDA Pro, Ghidra, x64dbg, OllyDbg, Radare2

 

🔹 도구별 장단점 비교표

도구명 장점 단점
PEview 가볍고 빠름, PE 구조 분석 용이 심층 분석 기능 부족, 디버깅 불가
PE-bear 직관적인 UI, 서명 검사 지원 디버깅 기능 부족
CFF Explorer PE 파일 수정 가능, Import Table 확인 용이 최신 PE 포맷 지원 미흡
Stud_PE 가볍고 직관적인 UI, PE 구조 분석 업데이트 중단, 최신 파일 분석 미흡
PEiD 패킹 탐지 강력, 사용자 정의 서명 추가 가능 최신 패커 탐지 어려움, 개발 중단
Exeinfo PE PEiD보다 더 많은 패커 탐지 지원 일부 서명 오탐 가능
Detect It Easy (DIE) 패킹 탐지 강력, 직관적인 UI 정적 분석 기능 한정적
PE Studio 악성코드 정적 분석 강력, VirusTotal 연동 동적 분석 불가능
PreVFrame.py Python 기반, 자동화 가능 UI 제공 없음, 초보자 사용 어려움
IDA Pro 강력한 디스어셈블러, 플러그인 지원 가격 비쌈, 학습 곡선 높음
Ghidra 무료, IDA Pro 대안 UI 불편, 속도 느림
x64dbg 실시간 디버깅 가능, 무료 초보자 접근 어려움
OllyDbg 32비트 디버깅 강력 64비트 지원 부족
Radare2 (r2) 강력한 분석 기능, 오픈소스 명령어 기반, 학습 난이도 높음

 

🔹 요약 및 추천 도구

PE 구조 확인 & 기본 분석PEview, Stud_PE, PE-bear, CFF Explorer
패킹 탐지 & 파일 서명 분석PEiD, Exeinfo PE, Detect It Easy (DIE)
악성코드 정적 분석PE Studio, PreVFrame.py
디버깅 & 동적 분석x64dbg, OllyDbg, IDA Pro, Ghidra, Radare2

 

📌 추천 조합:

✅ 1. 기본 PE 분석 → PE-bear + Stud_PE

🔹 이유:

  • PE-bear: 직관적인 UI, PE 구조 확인, 디지털 서명 검증 기능 제공
  • Stud_PE: 가볍고 빠르며, 다양한 PE 헤더 정보 표시 가능

📌 이 조합을 사용하면?
👉 PE 파일의 기본 구조(헤더, 섹션, 임포트 테이블 등)를 빠르게 분석할 수 있음


✅ 2. 패킹 탐지 → Exeinfo PE + PEiD

🔹 이유:

  • Exeinfo PE: 최신 패커 탐지, 스크립트 언팩 기능 포함
  • PEiD: 클래식한 패커 탐지 도구로, 사용자 정의 서명 추가 가능

📌 이 조합을 사용하면?
👉 PE 파일이 패킹되었는지 확인하고, 어떤 패커가 사용되었는지 판별 가능


✅ 3. 악성코드 정적 분석 → PE Studio + PreVFrame.py

🔹 이유:

  • PE Studio: VirusTotal 연동, 의심스러운 API 호출 탐지, 정적 분석 강력
  • PreVFrame.py: Python 기반 자동화 가능, 대량 분석에 유리

📌 이 조합을 사용하면?
👉 PE 파일이 악성인지 빠르게 판단하고, 자동화 분석 환경을 구축 가능


✅ 4. 심층 분석 → IDA Pro + Ghidra

🔹 이유:

  • IDA Pro: 강력한 디스어셈블러, 플러그인 지원, 플로우 그래프 제공
  • Ghidra: 무료이며, IDA Pro와 유사한 기능 제공

📌 이 조합을 사용하면?
👉 PE 파일 내부 코드 분석 가능, 난독화된 코드도 역공학 가능


✅ 5. 디버깅 → x64dbg + OllyDbg

🔹 이유:

  • x64dbg: 64비트 바이너리 디버깅 지원, 플러그인 활용 가능
  • OllyDbg: 32비트 바이너리 분석에 강력함, 직관적인 인터페이스

📌 이 조합을 사용하면?
👉 악성코드가 실행 중에 어떤 동작을 하는지 분석 가능, 동적 분석 수행

 

 

추천 조합 이유
PE-bear + Stud_PE 가볍고 직관적인 PE 구조 분석
Exeinfo PE + PEiD 최신 & 클래식 패킹 탐지 조합
PE Studio + PreVFrame.py 정적 분석 + 자동화 분석 가능
IDA Pro + Ghidra 코드 리버싱 & 심층 분석 최강 조합
x64dbg + OllyDbg 64비트 & 32비트 디버깅 최적 조합