티스토리 뷰

728x90
반응형

[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 파일은 code, data, rdata 등으로 나누어져 있는데 속성 값 및 권한 역시 각각 가지고 있습니다.


Name

- 섹션의 이름입니다.

- Name 필드는 로딩중 관련이 없기 때문에 원하는 이름으로 변경해도 됩니다.

- 저는 .text(2E 74 65 78 74 00 00 00)로 제작할 것입니다.


Virtual Size

- 실제 바이트 수를 가르킨다.(메모리에 로드되는 크기)

- Size of Raw Data(원래 데이터 크기)보다 Virtual Size(가상 크기)r가 차이가 심하게 크다면 다른 파일을 올리기 위함으로 의심해 볼 수 있습니다.

- TEST시 해당 필드를 0으로 채워도 실행이 되었습니다..


RVA

- 메모리 상에서의 섹션의 시작 주소를 가르킨다.

- Section Alignment의 배수값을 가지며, PE 로더에는 ImageBase와 합한 주소에 올라갑니다.


Size of Raw Data

- 저는 .text섹션에 어셈코드를 작성할 것입니다.

- 저는 30h 제작할 것입니다.

- File Alignment의 배수값을 가집니다.

- 현재 제작중인 PE의 File Alignment 필드 값은 0x200으로 제작했습니다.(이전 게시물 참고)


Pointer to Raw Data

- PE 파일 시작하는 실제 파일 오프셋 값입니다.

- File Alignment의 배수값을 가집니다.

- 저는 0x200으로 제작할 것입니다.(.text 섹션 헤더 ~ 코드섹션(.text) 꽤 0으로 채워진 사진 추가 조그만하게)


Number of Relocations

- IMAGE_LINENUMBER 구조체 배열의 원소의 개수라고 합니다.

- 실행파일에서는 항상 0 입니다.

- 저는 0으로 제작할 것입니다.


Number of Line Numbers

- IMAGE_LINENUMBER 구조체 배열의 원소의 개수라고 합니다.

- 저는 0으로 제작할 것입니다.


Characteristics

- 해당 필드(.text)의 속성을 나타내는 플래그의 집합입니다.

- 저는 .text 섹션에 CODE, MEM_EXECUTE, MEM_READ, MEM_WRITE 속성을 지정할 것입니다.(20 00 00 E0)

더 자세한 내용은 정보 참고


중간정리

Name는 .text(2E 74 65 78 74 00 00 00) 작성

Virtual Size 0으로 작성

RVA는 0x1000 작성

Size of Raw Data는 30h 작성

Pointer to Raw Data는 0x200 작성

Number of Relocations, Number of Line Numbers는 0으로 작성


[Section Header .text HxD]


2. .text Section

다음으로 .text 섹션에 값을 넣어보겠습니다. 

- Pointer to Raw Data 0x0200으로 해당 오프셋까지 0으로 채워야 될꺼 같습니다.(추후 INT, IAT)

- 해당.text 섹션의 Size of Raw Data은 30h로 제작한 상태입니다.(추후 어셈코드)


[현재 상태]


728x90
반응형

'Reversing > Reversing Tech' 카테고리의 다른 글

[Reversing] Inline Code Patch ②  (0) 2019.07.19
[Reversing] Inline Code Patch ①  (0) 2019.07.17
[Reversing] PE 파일 만들기④  (0) 2019.06.25
[Reversing] PE 파일 만들기③  (0) 2019.06.25
[Reversing] PE 파일 만들기①  (0) 2019.06.16
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today