libc를 통한 스택주소 릭 방법
Pwnable/탐구
2018. 12. 31. 22:34
libc를 통해 스택주소를 얻어내는 방법이 있다고 얼핏 들은적이 있었습니다.
오늘은 그것을 알아내는 방법에 대한 글입니다.
우선 http://researchport.tistory.com/43 여기의 글을 참고했다고 밝힙니다.
libc.so.6을 IDA로 보면 __environ이라는 영역이있습니다.
이 부분은 어떨때 사용되나 봤더니
getenv함수를 호출할때 사용된다던지 _libc_start_main에서도 사용이 되는 것을 확인했습니다.
결론적으로는 저 environ이라는 포인터 안에는 환경변수들이 로드되는 주소가 담겨있습니다.
0x7ffff7ffe100이라는 포인터 안의 값은
0x7fffffffe358이라는 스택의 값을 가르키고 있고
그 안에는 환경변수의 테이블들이 있어 환경변수를 가르키고있습니다.
따라서 해당값을 릭을 했다면 offset을 계산을 통해 스택이 로드된 주소를 알 수 있습니다.
'Pwnable > 탐구' 카테고리의 다른 글
[Java] Generic , Wild Card 정리 (0) | 2019.06.11 |
---|