

▲ LOB 14번 문제. bugbear -> giant 문제이다. giant.c와 giant 파일이 존재한다.

▲ 이전 문제와 달리 memcpy에서 ret 부분에 execve_addr이 있는지 체크한다.


▲ system 함수가 아닌 execve함수를 사용해야 한다.
execve함수는 execve address와 exit address , NULL 인자값을 가진다.
우리는 여기에 exit()주소를 system함수 주소로 바꾸고 NULL을 /bin/sh 문자열 주소로 변경해 준다.

▲ print로 system함수와 execve함수의 주소를 알아낸다. /bin/sh는 이전과 같은 코드로 주소를 알아낸다.
'System > LOB' 카테고리의 다른 글
[LOB] 16. assassin -> zombie_assassin (0) | 2019.04.26 |
---|---|
[LOB] 15. giant -> assassin (0) | 2019.04.26 |
[LOB] 13. darkknight -> bugbear (0) | 2019.04.26 |
[LOB] 12. golem -> darkknight (0) | 2019.04.26 |
[LOB] 11. skeleton -> golem (0) | 2019.04.26 |