티스토리 뷰

728x90
반응형

[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 


728x90
반응형
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today