[Reversing] PE 파일 만들기④ 마지막으로 어셈코드를 제작할 것입니다.[Reversing] PE 파일 만들기①[Reversing] PE 파일 만들기②[Reversing] PE 파일 만들기③ 1. x64 dbg- 지금까지 만들어진 파일을 올려보겠습니다.- 해당 VA 주소는 코드섹션(.text Section)입니다.- 현재는 0으로 채워져 있으니 코드섹션에 어셈코드를 추가할 것입니다. [0x401000 x64 dbg] [.text Section PE] 2. .text Section- 이전 게시물에 있는 파일을 열어보시면 위와 같이 .text Section 부분이 0으로 채워져있습니다.- 이전에 말했듯이 해당(30h)부분에 어셈코드를 제작할 것입니다.- 200h 부터 추가할 것입니다. [어셈코드 추가..
[Reversing] PE 파일 만들기③ Dos Header ~ .text 섹션을 생성하고 내용을 채워 제작했습니다.[Reversing] PE 파일 만들기①[Reversing] PE 파일 만들기② 1. IMPORT Directory Table[Step1]- 먼저 IMAGE_DATA_DIRECTORY에서 IMPORT Table의 RVA값을 작성할 것입니다.- 저는 IMPORT Table의 RVA를 0x40으로 제작할 것입니다.- 이전 게시물에 MS-DOS Stub Program 0으로 채운 부분에 IDT를 작성한다고 했습니다.(참고) [IDT 지정 HxD] [Step2]- IMPORT Directory Table의 필드를 다시 보겠습니다.- Import Name Table RVA, Time Date Sta..
[Reversing] PE 파일 만들기② 현재까지 Dos Header ~ PE Header 부분까지 제작해 왔습니다.[Reversing] PE 파일 만들기①물론 추가적으로 수정해야 되는 부분도 있습니다.(IMAGE_DATA_DIRECTORY 크기만 잡아두고 왔죠)다음으로는 PE 파일의 마지막 구조체인 Section Header 제작할 것입니다. 1. IMAGE_SECTION_HEADER .text- IMAGE_SECTION_HEADER Size는 40 bytes 입니다.- .text Section의 속성 값에 대한 정보를 가지고 있습니다. - .text, .idata, .data과 같은 Sections이 Section Table(IMAGE_SECTION_HEADER의 배열) 입니다.- PE 파일은 cod..
[Reversing] PE 파일 만들기 ① 제작 과정은 간략한 설명으로 건너뛰고 넘어가는 부분이 많습니다.이전 게시물을 참조 및 PE Format 참조 직접 제작해 보는 것을 추전을 받아 작성합니다.직접 제작하다 보면 자신이 잘 몰랐거나 잘 못 이해하던 부분을 정확히 파악하고 제대로 공부할 수 있다고 생각합니다.CLI 기반, printf문 사용, 'Hello World !' 출력을 목적으로 제작할 것입니다. 1. IMAGE_DOS_HEADER- MZ는 IMAGE_DOS_HEADER의 Signature입니다.(4D5A = ASCII 값 "MZ")- 해당 구조체의 크기는 40h으로(64byte) 고정이며, 여러개의 필드로 구성되어있습니다.- IMAGE_DOS_HEADER의 구조체 중 e_lfanew가 PE ..
[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 파일이 메모리에 로드 될 때 필요한 모든 정보들을 담고 있다. 추가적으로 주요 섹션들과 정보들의 위치와 크기를 나타내는 ..
[Reversing] PE 파일 구조 정확하지 않을 수 있으며, 전체를 다루지 않았습니다. 주요 구조 IMAGE_DOS_HEADER IMAGE_NT_HEADER IMAGE_FILE_HEADER IMAGE_OPTIONAL_HEADER IMAGE_SECTION_HEADER IMAGE_IMPORT_DESCRIPTOR IMAGE_EXPORT_DIRECTIORY IMAGE_IMPORT_BY_NAME IMAGE_THUNK_DATA32 peview로 바라본 PE 구조 IMAGE_DOS_HEADERtypedef struct _IMAGE_DOS_HEADER{ WORD e_magic; WORD e_cblp; WORD e_cp; WORD e_crlc; WORD e_cparhdr; WORD e_minalloc; WORD e_..
- Total
- Today