leejhstory
악성코드 분석(PE 구조) 본문
1. PE구조(Portable Executable)
- 윈도우즈(Win32)의 기본 파일 구조이다.
- 해당 파일은 Win32 환경 어디에서도 실행 가능하다.
- 윈도우즈 파일 중 EXE, DLL, SYS파일이 PE구조를 가지고 있다.
프로그램과 관련된 많은 정보가 PE구조에 저장되어 있다.
Win32 운영체제는 해당 정보를 읽어 프로그램을 실행 시킨다.
PE 구조 관련 유틸
- PEview : PE구조를 보기 편한 구조로 되어 있지만 편집기능 및 원하는 주소로 이동하는 기능은 없다.
- CFF Explorer : CFF Explorer는 구조를 보기에는 peview보다는 불편하지만 편집 기능 및 지정된 주소로 이동하는 기능 및 그 외 다른 추가적 기능도 있다.
2. PE 기본 구조
- IMAGE_DOS_HEADER : 도스 헤더
도스와의 호환성을 위해 존재하는 부분
MS-DOS Stub Program 항목에는 해당 프로그램을 도스 운영체제에서 실행하면 "This program cannot be run in DOS mode" 라는 메시지를 띄우고 종료하도록 하는 프로그램 코드가 삽입.
첫 번째 항목 도스헤더를 나타내는 'MZ'이다. PE구조는 도스 헤더로 시작되기 때문에 PE구조를 가지고 있는 파일은 모두 'MZ'로 시작된다.
두 번째 항목은 도스헤더의 마지막에 위치한 정보로 다음 헤더인 IMAGE_NT_HEADERS의 옵셋정보이다. 이 정보를 이용해 NT_HEADER의 위치를 찾아가게 된다.
- IMAGE_NT_HEADER
IMAGE_NT_HEADER는 Signature, IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER를 포함.
Signature는 PE헤더의 시작을 의미하는 'PE'문자열로 시작
윈도우즈 실행파일을 판단하는 기본적인 방법 : 해당 파일의 바이너리 정보에서 'MZ'로 시작하고 'PE'문자열이 있는지 확인
IMAGE_FILE_HEADER는 파일의 전반적인 정보를 가짐
해당 파일의 타깃이 되는 시스템의 정보, 섹션의 개수, 생성 날짜, IMAGE_OPTIONAL_HEADER의 크기, 해당 파일의 특징을 가짐
'악성코드 분석 > 악성코드 분석 강의 정리' 카테고리의 다른 글
정적분석 (0) | 2019.06.08 |
---|---|
동적분석과 정적분석 (0) | 2019.06.07 |
악성코드 분석(PE 구조3) (0) | 2019.06.07 |
악성코드 분석(PE 구조2) (0) | 2019.06.06 |
악성코드 개론 (0) | 2019.06.04 |