반응형
Windows Vista이상버전에서는 메모리 보호를 위해 Load되는 PE의 Base주소를 Random하게 할당합니다.
근데 이 기법으로 인해 분석할경우에 VA계산이 어렵습니다.ㅠㅠ 그래서 이번 게시글에서는 ASLR을 끄는 방법을 알아보겠습니다.
요점은 PE의 Optional Header의 DLL Characteristics에 있습니다.
빨간색 박스 부분에서 IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 가 있습니다. DYNAMIC_BASE 말에서 알수있다시피 이 Flag값이 ASLR기능을 ON/OFF기능을 수행합니다. (위에 ImageBase가 0x1000000임을 기억합시다!!!) 현재 상태에서 올리디버거에 올려보겠습니다.
ImageBase인 0x1000000과 무관하게 0xE60000이라는 주소로 할당되는 것을 볼 수 있습니다. 이번에는 ASLR을 OFF해보겠습니다.
이를 위해 DLL Charactoristics 값의 0x40(IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE )를 지워보겠습니다.
HXD를 통하여 해당 (0x40)IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE Flag를 제거했습니다.
올리디버거에 올려보겠습니다.
기존에 파일에 정의되었던 ImageBase값그대로 로드되는것을 볼수있습니다. 이를통해 ASLR이 적용된 Windows Vista이상 버전에서 별도의 VA계산이 필요없이 분석이 가능해졌습니다!!!
반응형
'Security > Windows System' 카테고리의 다른 글
커널진입(INT 2E,SYSENTER)-전체적인흐름 (0) | 2017.06.23 |
---|---|
커널진입(INT 2E,SYSENTER)-INT 2E(IDT : Interrupt Descriptor Table)편 (0) | 2017.06.23 |
Segmentation과 Paging(3) - 페이징 (1) | 2017.06.18 |
Segmentation과 Paging(2) - 세그먼테이션 (0) | 2017.06.15 |
Segmentation과 Paging(1) - 세그먼테이션과 페이징 전체적인 흐름 (1) | 2017.06.14 |
댓글