ddanss 2019. 8. 31. 10:42
728x90

 

 

 

plt -> got -> got 

두번째 got은 진짜 함수 주소이다.

이 got을 flag()함수 주소로 해서 사용하는 것 같다.

 

snprintf를 FSB에 사용하고 printf의 got을 flag함수로 돌림

 

payload = printf_got(덮을 위치) + %(flag()-4)x + %n

 

%n을 이용해서 flag 주소값을 맞춰주려고 하는데 앞에 이미 printf@got가

입력되었으므로 4byte를 빼주어야한다. 그렇기 때문에 4를 뺀 값을 넣어준 것이다.

그렇다고한다... 아직 이해하기가 많이 어렵당..

반응형