long 은 단위가 4바이트 아니였나요?
*ptr[0]이 ptr[1]을 가리키게 하므로 ptr[0]에 __free_hook을 넣고 ptr[1]에 system을 넣으려 했습니다.
ptr은 형식이 long이니까 ptr[0] 과 ptr[1]엔 각각 4바이트만큼의 공간만 할당된다고 생각했는데
그렇게 p32(__free_hook)랑 p32(system) 이렇게 send하니 에러가 떠서
p64로 패킹을 한번 바꿔봤더니 성공이네요
이해가 안되는건 처음 ptr을 선언했을때 long으로 선언했으니 4바이트만큼 할당되는 줄 알았는데..64비트체계에선 long이 8바이트 단위인가요? 아시는 분 도와주시면 정말 감사하겠습니다..ㅠ
#pwnable
작성자 정보
답변
1
Rasser
워게임: 20
64비트에서는 long이 8바이트 입니다
https://sweetnew.tistory.com/16