완료됨
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바이트 떨어져있기 때문입니다.
강의의 어떤 내용인지 정확히 인지가 되지 않아 궁금증이 해결되셧나 모르겠네요 ^^
더욱 궁금하신 부분 말씀해주시면 해결해드릴게요. 화이팅!