완료됨
ex2 & ex3 질문

안녕하세요.
ex2 예시를 보면 buf보다 한칸 앞에 있기때문에 idx를 -1로 넣어서 예시 성공 할 수 있었습니다.
ex3 예시를 보았는데 idx에 -pow(2,31)이 -pow(2,31)이 되니까 idx에 -pow(2,31) 값을 넣으면 음수 값을 얻어서 win에 접근하여
예시 성공 할 수 있었는데요.
질문이 몇가지 있습니다.

  1. ex3의 경우 음수를 얻을 수 있는 음수가 -pow(2,31)만 존재하나요? 다른 경우를 생각해봐도 없는거같네요. 있다면 컴파일러마다 차이가 있을수 있나요?

  2. buf 앞에 dummy때문에 win접근하려면 idx가 -8이 필요하게 되는데 여기 win보다 낮은 메모리에 할당된 공간이 없으니까 -pow(2,31)해도 그냥-8 idx위치인 win을 가르키는건가요?

  3. 질문2가 맞다면 ex2에서 idx를 -2, -5, -9 등등의 값을 줬을때 성공하지 못하는 이유를 설명해주세요.

감사합니다!

#시스템해킹
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 2
  1. 맞습니다. 음수 값은 -pow(2,31)만 존재합니다.
  2. -pow(2,31)은 실제 메모리 상에서 0x80000000입니다. 해당 값을 10으로 나누기떄문에 -8이 됩니다.
2020.04.21. 12:50
Itachi
워게임: 1

이해하는데 큰 도움이 되었습니다. 2의 보수형식으로 음수를 나타낸거군요. 감사드립니다.

2020.04.27. 17:19