format string bug 강의를 보다가 changeme의 인자 전달 순서에 대해 의문점이 생겼습니다.

image.png

위 사진을 보면 현재까지 사용된 문자열의 길이를 8번째 인자 changeme 주소에 작성한다고 하는데요
왜 changeme가 8번째 인자에 위치하게 되는 건가요??

image.png
위와 같이 인자가 전달되지 않고 갑자기 왜 8번째 인자인가요??

작성자 정보
답변 1
avatar
qwerty
CTF First Place

위의 그림에서 볼 수 있듯, 1~5번째 인자는 레지스터에 해당합니다. 이후 [rsp], [rsp+8], ... 순으로 인자가 전달되는데 [rsp+16]에 changeme의 주소(페이로드 16바이트 뒤)를 작성했기 때문에 8번째 인자에 접근해야 정보를 정상적으로 바꿀 수 있습니다

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