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비트 디버깅 최적 조합 |
'정보보안 > 악성코드 분석가' 카테고리의 다른 글
[PE파일 분석 실습] 프로세스 인젝션을 수행하는 MW 분석 (0) | 2025.04.28 |
---|---|
악성코드(Malware) 주요 행위 분석 및 개념 (0) | 2025.04.06 |
악성코드 유형 (0) | 2025.03.16 |
가상머신 및 응용프로그램 설치 (0) | 2025.03.16 |
가상머신이란? (0) | 2025.03.16 |