리버싱

Reversing

Public Class 2020. 2. 23. 04:51

섹션의 속성에는 file/memory에서의 시작 위치, 크기, 엑세스 권한 등이 있다.

code : 실행, 읽기 권한

data : 비실행 ,읽기, 쓰기 권한

resource : 비실행, 읽기 권한

 

IMAGE_SECTION_HEADER : 섹션 헤더는 각 섹션별 IMAGE_SECTION_HEADER 구조체의 배열로 되어 있습니다.

주요멤버 (나머지는 사용되지 않음) :

VirtualSize // 메모리에서 섹션이 차지하는 크기

VirtualAddress // 메모리에서 섹션의 시작 주소(RVA)

SizeOfRawData // 파일에서 섹션이 차지하는 크기

PointerToRawData // 파일에서 섹션의 시작 위치

Characteristics // 섹션의 속성(bit or)

name // 아스키가 아니어도 되며 끝이 null도 아니고 어떠한 규칙이 없다. 모두 null 로 채워도 됨

 

파일에서의 pe와 메모리에서의 pe는 서로다른 모양을 가지므로 구별하기위해 메모리에 로딩된 상태를 이미지라는 용어사용해 구별함

 

헤더임 헤더는 붙어있음

 

RVA to RAW(메모리 주소를 파일주소와 매핑)

IMAGE_SECTION_HEADER 구조체에 의하면 *비례식은 이렇다.

RAW - PointerToRawData = RVA - VirtualAddress

                           RAW = RVA - VirtualAddress + PointerToRawData

 

VirtualSize 값이 SizeOfRawData 값보다 크면 오류가 나고 해당 RVA에 대한 RAW값은 정의할 수 없다 고 해야함.