본문 바로가기

코드^학습/워게임풀이(약간)

해커스쿨 level16 풀이

해커스쿨 level16풀이 입니다.

중복되는 자료 생산도 싫고(그리고 귀찮기 때문에!!)

자세한 풀이는 [http://geundi.tistory.com] 여기를 참조하시기 바랍니다.

------------------------------------------------------------------------------

풀이 :

gdb로 열어보면 함수를 실행하는 부분이 call이라고 있는데 이부분이 0x08048500으로 기본세팅이 되어있다.


그리고 힌트를 살펴보면 level15와 동일하게 생긴 것을 알 수 있다.


변수+포인터(void)+버퍼(20byte) 이를 통해 41byte를 입력하면 void포인터에 접근할 수 있음을 알게되고 여기에 shell 함수의 주소를 적으면 자연스럽게 문제를 해결할 수 있다.

shell함수의 주소는 gdb를 통하여 알아내었다.

(gdb의 요소가 삽입되어서 주소가 바뀔수도 있는데 통했다.

아마도 문제서버가 페도라 옛날버전이라 그런거 같다.

objdump를 사용한다면 정확한 주소를 알 수 있다.)

------------------------------------------------------------------------------


즐거운 공부되세요.ㅎ

'코드^학습 > 워게임풀이(약간)' 카테고리의 다른 글

해커스쿨 level17 풀이  (0) 2013.10.09
해커스쿨 level15 풀이  (0) 2013.10.09
해커스쿨 level14 풀이  (0) 2013.10.09
해커스쿨 level13 풀이  (0) 2013.10.09
level1부터 ~ level10까지의 풀이 링크  (0) 2013.01.30