포맷 스트링 관련

fig.4의 실습(FSB_EASY)에서 %p %p %p %p %p %p 를 입력하면 rdi, rsi, rdx, rcx, r8, r9 순으로 출력되는데, 왜 그다음 fig.5, 6 부터는 rsi부터 출력되는건가요? printf()의 원래 인자값을 생각하면( 예> printf("%p", buf) , rdi = "%p" 주소, rsi = buf 주소겠죠?) rsi 부터 출력하는 게 맞다는 생각이 들긴 하는데 실습(FSB_EASY)에서는 rdi부터 출력되니 약간 헷갈리네요. rdi부터 출력 or rsi부터 출력, 어떤 게 맞는건가요? 실행 환경에 따라 다른건가요?

#시스템_해킹 #기초 #포맷_스트링_버그
작성자 정보
답변 1
avatar
wyv3rn
무플 방지 위원회장

실행 환경에따라 조금씩 다른 것으로 알고 있습니다.

결국은 값을 출력하기 직전의 rsp위치로부터 하나씩 출력해주는 것이 fsb의 핵심이라 생각합니다.

2023.02.24. 23:53
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기