완료됨
주소와 포맷스트링의 순서에 따라 결과가 다르게 나옵니다
  1. payload = b'%105c%7$hhn' + b'%29c%8$hhnAAA' + p32(print_got) + p32(print_got+1)

  2. payload = p32(print_got) + p32(print_got+1) + b'%97c%1$hhn' + b'%29c%2$hhn'

(1번)포맷스트링 + 주소의 경우에는 seg fault가 발생하고
(2번)주소 + 포맷스트링의 경우에는 print_got의 하위 2바이트가 정상적으로 덮어씌워졌습니다. 왜 동일한 코드(제가 생각하기에는요)인데 결과가 다르게 나오는지 궁금합니다.

#pwnable
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
avatar
wyv3rn
무플 방지 위원회장
avatar
wyv3rn
무플 방지 위원회장

저도 그렇게 보이긴 하는데요...
실제로 값을 seg fault가 발생할때 어셈블러코드와 값을 보면 답이 나오지 싶은데요...?
보통 오프셋 문제가 대부분인데 저대로라면 돼야할 것 같은데 말이죠 ㅎㅎ

2022.11.29. 07:42