티스토리 뷰
[Reversing] PE 포맷(Portable Executable)
참조
- Windows 시스템 실행파일의 구조와 원리
(이해한데로 정리해본다.)
PE란?
PE 파일은 위도우상에서 실행 가능한 포맷(Common Object File Format)으로 dll, exe, obj, sys 확장자 등이 있다.
또한, 크게 헤더와 섹션으로 나눌수 있으며, 헤더는 파일 실행에 있어 전반적인 정보를 가지고 있다.
섹션은 dll과 api 정보, 어셈블리 코드등 실제 내용을 담고 있다.
IMAGE_FILE_HEADER는 PE 파일의 파일 정보를 나타내고 IMAGE_OPTIONAL_HEADER는 PE 파일이 메모리에 로드 될 때 필요한 모든 정보들을 담고 있다.
추가적으로 주요 섹션들과 정보들의 위치와 크기를 나타내는 IMAGE_DATA_DIRECTORY 구조체의 배열들을 담고 있다.
추가메모
eax 레지스터 0x1024 값 [0x01234567] 메모리 주소 |
Op-code push eax Op-code Operand_1 add eax, ebx Op-code Operand_1, Operand_2 cmp [ebx-4], 0x9 |
예를 들어
add esp, 18
83C4 18
83은 OP-Code
C4는 Operand_1
18은 Operand_2
1바이트를 가져온뒤 OP-Code를 해석하고 오퍼랜드 값을 읽고 OP-Code 명령어를 실행하고 저장 후 다음 명령어 이동
byte ptr
- Pointer Directive
'Reversing > ETC' 카테고리의 다른 글
[Reversing] 가능한 가장 작은 PE 실행 파일 만들기(Tiny PE) ① (0) | 2019.04.02 |
---|---|
[Reversing] IMAGE_SECTION_HEADER (0) | 2019.02.12 |
[Reversing] IMAGE_NT_HEADER (0) | 2019.02.11 |
[Reversing] IMAGE_DOS_HEADER (0) | 2019.02.08 |
[Reversing] PE 파일 구조 찾기 (0) | 2019.01.31 |
- Total
- Today