기초 정적 분석_PE 파일
notepad.exe(ver. Win 10)
NT_Header
첫번째 signature : 4byte공간 PE구조 파일 명시
50 45: PE(아스키)
두번째 File_Header
1. Machine(CPU): 0x8664-AMD64 CPU/0x014c-Intel CPU 호환
2. 섹션의 개수: 0x0005
3. Time Data: 0x144CAAC5→340568773
- 계산하는 방법(예): /60=20792156분 35초, /60=346535시간 56분, /24=14438일 23시, /365=39년 203일
- (컴퓨터 기준)1970년 1월 1월 0시 + 39년 203일 23시 35초 = 2009년 7월 13일 23시 56분 35초
4. Pointer To Symbol Table, Number of Symbols: 0으로 패딩
5. Size Of Optional Header: 0xE0(32bit), 0xF0(64bit), 0x00(obj)
6. Characteristics: 파일형식 정보, OR 연산
winnt.h [Characteristics]
세번째 Optional_Header
주요 설명
1. Magic: 실행하는 PE 파일의 구조체가 32bit인지 64bit인지 알려주는 것
2. Address of Entry Point: 프로그램이 실제 시작되는 주소, 메모리 상에 파일이 올라가게 되면 몇 번째부터 시작할지 포인터가 잡히게 된다. (=EP=Entry Point 가장 먼저 포인터가 가는 부분(악성코드를 시작 지점으로 지정할 수 있다.)
3. Image Base: PE파일이 메모리에 로드되는 시작주소, 컴파일러에 따라 다르기도 함.
4. Section Alignment: 메모리에서 섹션의 최소 단위, 실제 파일보다 메모리에 올라가 있는 패딩 영역의 사이즈가 커짐. 시작주소는 이 값의 배수
5. File Alignment: 파일에서 섹션의 최소 단위
6. Sub System
7. Data Directory: 정의되어 있는 값이 있기 때문에, 속성들을 정의할 수도 있다.
winnt.h [Data Directory Entry]
IMAGE_OPTIONAL_HEADER
다음 설명으로
'Security > Reversing' 카테고리의 다른 글
[PE 파일] 분석 - calc.exe (with PEview) (1) | 2020.04.09 |
---|---|
[PE 파일] 구조(4) - PE 파일 섹션(Section_Header .text) (2) | 2020.04.09 |
[PE 파일] 구조(2) - PE 파일 헤더(DOS_HEADER, DOS Stud Code) (2) | 2020.04.09 |
[PE 파일] 구조(1) - PE파일 정의, 구조(PEview.exe) (2) | 2020.04.09 |
[Reversing 실습] abex’ crackme #1 (2) | 2020.04.01 |