완료됨
format string bug 실습 질문

format string buf 에서 %x 를 왜 10 개를 써야하는지 이유를 자세히 알수있을까요..?
%x는 esp+4 주소부터 하나씩 스택에서 꺼내오는 역할을 한다고 알고있는데 맞을까요??
printf(buf) 가 실행됐을때의 스택상태가 높은 주소부터 차례대로 flag(4byte) buf(32byte) 31 buf 0 buf 인지도 궁금합니다..

#시스템해킹
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
Kongr
워게임 풀이: 50

printf 문의 동작원리에 대해 궁금해하시는것 같습니다.

printf 의 첫번째 인자인 문자열 주소의 값이 일반 문자열이면 그대로 출력을 합니다.(스택 움직임 없음) 포맷스트링을 만난다면 (ex) %x)

esp+0x4 만큼 움직여서 4byte 만큼 참고하여 출력합니다.

현재 %x 를 10번 사용한 이유는 출력하고자하는(flag 로 예상됨) flag 값이 현재 prntf(buf) 로 부터 40바이트 떨어져있기 때문입니다.

강의의 어떤 내용인지 정확히 인지가 되지 않아 궁금증이 해결되셧나 모르겠네요 ^^

더욱 궁금하신 부분 말씀해주시면 해결해드릴게요. 화이팅!

2021.04.28. 23:02