You are silver 본문
동작하면 입력을 받고 다시 출력을 해준다.
그 아래 실버라고 출력된다.
많이 입력하면 플레티넘이고 나온다. bof의 가능성도 생각했다.
fsb도 발생한다.
v6변수의 값에 따라 get_tier함수에서 티어가 반환된다.
티어가 챌린저이면 flag를 획득한다.
fsb를 이용해 printf의 got주소를 play_game주소로 바꾸는 동시에
v6의 값을 \xff로 바꿔주도록 한다.
64bit fsb는 32bit랑 다르다.
덮을 주소를 먼저 넣어준다.
6 + len(페이로드 길이) / 8로 인해 %8$ln을 넣어준다.
ln은 3byte를 덮을 것이기 때문에 사용했다.
2byte는 hn 1byte는 hhn이다.
A는 패딩이다. 16byte의 길이가 나올 것이다.
덮일 주소를 넣는다.
마지막으로 bof를 일으켜 \xff값을 넣어준다. v6에 \xff가 들어간다.
Comments