
이 문제 같은 경우 전 문제와 비슷한것 같지만

disassemble해보면 입력받을수 있는 크기는 45지만
메모리에할당하는크기 56으로 더 커서 ret에 덮어씌울수가 없다.
따라서 해당문제 코드를 다시 읽어보면 메모리에 할당된는 주소를 이용하여 check에 0xdeadbeaf를 집어 넣는 것이다.

코드를 알고 있기 때문에
위와 같은방식으로 코드를 작성해서

실질적으로가 포인터가 어디를 가리키고 있는지를 알 수 도 있겠지만
이는 사용하기 어렵다.

다시 gdb를 보면 29번째 줄에서 ebp - 16 위치에서 deadbeef 랑 비교하는 부분을 참고하면
그 부분이 check인 부분일 것이라고 의심 할 수 있다.


따라서 다음과 같은 코드를 이전과 같이 쓸 수 있다.

'정보보안 > FTZ' 카테고리의 다른 글
[FTZ]level16 (0) | 2022.07.25 |
---|---|
[FTZ]level15 (0) | 2022.07.25 |
[FTZ]level13 (0) | 2022.07.22 |
[FTZ]level12 (0) | 2022.07.22 |
[FTZ]level11 (0) | 2022.07.22 |