
14단계 문제와 같아 보이지만 check이 포인터 변수인 것이 다르다.
포인터 변수로 되어있다는 것은 값이 deadbeef 여야 된다가 아니라
가르키는 주소의 값이 deadbeef 여야 된다는 것이다.

gdb로 전과 같이 분석했을 때 deadbeef 를 하드 코딩하여 비교하고 있기 때문에
main 부분의 메모리를 살펴보면

다음과 같이 dead beef가 저장 되어있는 모습을 알 수 있다.
(python -c 'print "\x90"*40+"\xb2\x84\x04\x08"';cat) | ./attackme
따라서 다음과 같이 코드를 입력하여 해결 할 수 있다.
이 외에 check 이 들어가는 부분을 환경변수를 이용하여 처리 할 수 도 있다.

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