Reversing
섹션의 속성에는 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값은 정의할 수 없다 고 해야함.