완료됨
2frame

다풀엇지만

execve("/bin/sh", 0, 0)

frame2.rsp = bss + 0x500
frame2.rdi = bss + 0x108

여기 이부분이 이해가 안되요 frame2.rdi = bss + 0x108 이부분이 bin sh 인거같은데 왜 108을 할당하는지 frame2.rsp = bss + 0x500 여기는 왜500 인지 모르겟네요 ㅜ

#pwnable
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
avatar
wyv3rn
무플 방지 위원회장
avatar
wyv3rn
무플 방지 위원회장
  1. 두번째 페이로드 총 길이가 0x108 + /bin/sh이기 때문입니다.
    결국 execve 함수가 참조할 argv0인 /bin/sh의 위치가 거기이기 때문입니다.
  2. 그냥 스택의 위치로 사용될 "적당한 위치" 입니다. bss 초반에는 특정 값이 있을 가능성이 있기에 "적당히" 떨어진 위치를 사용하면 됩니다.
2023.01.08. 18:10