cat troll.c
argc의 개수가 2개여야 하고 argv[1]이 0으로 초기화 된다. 따라서 앞의 문제처럼 argv[0]을 공략하면 될 거 같다.
argv[0]에 쉘코드로 된 심볼릭 링크를 걸고 RET값을 argv[0]쪽으로 덮는다.
근데 자꾸 저렇게 troll이 없는 파일이라 뜬다.
쉘코드에 보면 \x2f가 있는데 이게 아스키 코드로 “/”이므로 디렉토리 구분자로 인식한다고 한다.
그래서 쉘코드를 \x2f가 없는 것으로 바꿔준다.
gdb로 argv[0]의 주소를 확인한다.
쉘코드를 획득할 때 까지 주소를 바꿔주며 삽질을 한다.
계속 시도하다보니 됐다.
'LOB' 카테고리의 다른 글
LOB 10번(vampire → skeleton) (0) | 2016.10.04 |
---|---|
LOB 9번(troll → vampire) (0) | 2016.10.04 |
LOB 7번(darkelf → orge) (0) | 2016.10.04 |
LOB 6번 (wolfman → darkelf) (0) | 2016.10.04 |
LOB 5번 (orc → wolfman) (0) | 2016.07.13 |