완료됨
문제는 풀었지만, 질문이 하나 있습니다.

제가 처음에 시도한 방법은 OOB를 통해서 print함수의 내용을 win 함수의 내용과 바꿔서 print함수를 실행시켜 win 함수를 실행하는 방법이었습니다. 하지만 이렇게 하려니까 다음과 같은 오류가 나면서
실행이 종료되더군요.

저는 NO RELRO라고 되어있길래 데이터를 모두 바꿀 수 있는 줄 알았는데, 왜 이건 안되는거죠?
gdb로 분석해봤는데 xor 함수에 영향이 가는 부분도 아니었습니다.

#pwnable
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 2
kimht
공부벌레
kimht
공부벌레

안녕하세요, Mysecretgarden님.

어떤 오류가 발생하는지 전체 스크린샷을 보여주시면 알 수 있을 것 같습니다.

스크린샷에서 추측하는 바로는 mov qword ptr[rdx + rax], rcx 부분에서 세그멘테이션 폴트가 발생하지 않았을까 싶은데요.

디버깅을 통해 해당 명령어에서 주소 값인 rdx + rax가 올바른 메모리 영역을 가리키고 있는지 확인해보시면 좋을 것 같습니다.

익스플로잇 과정에서 rdxrax가 의도하지 않은 값으로 변조되어서 영향을 주었을 가능성이 있습니다.

감사합니다.

2025.01.13. 16:14
avatar
0D
질문 등록: 1
avatar
0D
질문 등록: 1

vmmap으로 보시면 그쪽 영역에 쓰기 영역 권한이 열려있지 않아서 그렇습니다.

2025.01.28. 17:18