IT하는 참새

PE 04 본문

PE구조

PE 04

pshot 2017. 9. 2. 23:09

이번시간에는 Section Header를 알아보겠습니다.

 

진짜 의식의 흐름대로 잘만 따라오면 안어려워요 PE구조

 

시작!

 

 

Section Header:

각 Section들의 성질? 특징을 정의해놓은 것을 의미합니다.

그리고 얘도 구조체로 존재합니다 IMAGE_SECTION_HEADER 섹션이름 

 

 

 

제가 Section1, Section2 이렇게 이름붙였는데 사실은 보통 쓰는 이름이 있습니다

(절대적인 이름이 아님을 강조)

 

section(".text"), section(".data"), section(".rsrc") 뭐 이렇게요.

이름이 .text  .data  .rsrc 에요

 

이 각기다른 Section들에 정보를 저장합니다. 왜요? 뭐가 편하니까 그렇게 했겠죠

(프로그램의 안정성 때문입니다)

 

각기 다른 역할로 나누어 코드들을 Section에 넣어놨는데

만약 이렇게 안하고 뒤죽박죽 해놨다? 서로 역할이 다른데 분류안해놨다?

수정하다가, 실행하다가 침범하게됩니다. 그럼요? 프로그램 GG ㅇㅋㅇㅋ? 알겠죠?

 

그래서 다시말하면 비슷한 성격의 자료를 Section이라고 이름붙이고 넣은겁니다

 

그래서 Section Header에는 이 Section에 특징을 기술해놓은 장소입니다.

 

.text의 Section Header를 가져와봤습니다. (이 Section Header의 주소는 찾을 수 있을거에요)

 

 

1. Name

 

Section의 이름을 정의해줬습니다. 값을보니 2E 74 65 78 74 00 00 00이네요.

아스키값으로 봅시다.

근데 Section 이름에 대해서는 꼭 신뢰할 만한 정보가 아니니 크게 신경안써도됩니다.

(내가 .text -> .bidulgi 뭐 이렇게 바꿀수도있어요)

 

2. Virtual Size

 

PE파일이 실행되어 메모리에 올라갔을 때! 그 때!의 Section이 차지하는 크기 입니다.

저는 A6FC라는 크기를 차지한다네요. (바이트로 바꿔보면 42748 byte네요)

(계산기켜서 16진수로 A6FC 입력하고 DEC로 바꿔보세요)

 

3. VirtualAddress

 

PE파일이 실행되어 메모리에 올라갔을 때! 그 때!의 Section의 시작주소 입니다(RVA)

저는 1000이네요. 즉 메모리에 올라가면 ImageBase+1000주소에 .text섹션이 있대요

 

 

4. SizeOfRawData

 

PE파일이 하드디스크에 파일형태로 있을 때! 그 때!의 Section이 차지하는 크기 입니다.

저는 A800이네요. (그냥 파일형태로있으면 43008 byte네요)

 

5. PointerToRawData

 

PE파일이 하드디스크에 파일형태로 있을 때! 그 때!의 Section의 주소(Offset)입니다.

저는 400입니다. 혹시 저번시간에 section1 (body)갔던거 기억하시나요?

그때갔던 주소가 400이였습니다. 제가 첫번째 Section에 갔던게 여기 증거로 남아있네요

 

6. Characteristics

 

음... Section의 속성입니다. Bit OR결과값이고요

아까 비슷한 성격의 자료를 넣어둔게 Section이라고 했죠?

그 성격을 판별하는겁니다.

이 Section의 값은 60000020입니다.

3개의 권한을 Bit OR한 결과입니다.

따로 외워둘 필요는 없습니다. 그냥 이런애들이 들어가구나 하시면됩니다.

저도 PE View에서 보여주는 저 권한들을 볼 뿐이지 무슨 권한이 있나 하고

상수를 찾아보는 일은 하지 않습니다.

 

-끝-

 

PE 04 끝

---------------------------------------------------------------------------------------------------------

 

다음이야기:

 

쉬운내용이지만 역시 중요한 내용으로 오겠습니다.

무엇보다 분량이 짧아요!

 

 

 

'PE구조' 카테고리의 다른 글

PE 05  (0) 2017.09.02
PE 03  (0) 2017.09.02
PE 02  (0) 2017.09.02
PE 01  (0) 2017.09.02
PE구조 시작하기전에  (0) 2017.09.02