Reversing-ASLR 기능 삭제
PE file format을 공부하려고 섹션을 빼고 넣고하는 작업을 하다 흥미로울거 같다 생각해봤는데 잘되서 포스팅하게 되었습니다.
ASLR기능은 간단히 말해서 파일에 메모리에 올라가 실행될때 그 주소를 랜덤으로 바꿔주는 기능입니다.
이 ASLR 기법은 .reloc 섹션의 재배치 기능에 의해서 된다고 일단 간단히 알고있으면 될것 같습이다.
<그림.1> 프로그램 실행화면
<그림.2>ASLR이 적용됬을 때
<그림.3>Stud_PE를 이용해 ASLR을 제거했을 때
Stud_PE라는 툴로 간단하게 ASLR기능을 끌 수가 있습니다. 하지만 .reloc 섹션을 지워 ASLR을 끄는 법을 포스팅 하겠습니다.
<순서>
1. .reloc의 Section_Header를 0으로 만듬
2. .reloc의 body부분을 0으로 만듬
3. IMAGE_NT_HEADER의 IMAGE_FILE_HEADER의 Number of Section을 수정
4. 이 파일의 SectionAlignment가 1000이고 .reloc섹션의 vitualaddress가 1000보다 작으
므로 size of image의 값을 1000빼준다.
<결과>
Entry Point에 정확히 매핑된 것을 확인 할 수가있다.
동적할당은 체크되어있지만 ASLR이 적용되지 않는다.
보통 Stud_PE로 ASLR 기능을 끄지만 한번쯤 이렇게 실습해보면 PE에 대한 이해도가 점점 높아질 거에요~~
0 개의 댓글