heap overflow 예시에서
예시를 똑같이 작성하고 실습하였는데 아무리 시도를 해도 HEAP CORRUPTION DETECTED라는 내용은 안 나오고 중단점 명령 실행됨(중단점 명령이 ....exe에서 실행되었습니다)이라고만 나오는데
이 2개가 동일한 의미인가요?
답변 1
1
Visual Studio 버전에 따라 다를 수 있으니 신경쓰지 마세요!
0
1가지 더 궁금한 것이 있습니다
void* pointer = malloc();에서 malloc에
4를 입력하면 언급했던 내용이 나오고
12를 입력하면 정상적으로 종료되지만
8을 입력하면 이 경우에도 유효한 heap 범위를 초과하게 될 텐데 언급했던 내용이 나오지도 않고 정상적으로 종료되지도 않은 채 가만히 멈춰있는 것 같습니다(진단 세션 시간은 계속 증가)
이유가 무엇일까요?
1
우선 1 번 작성하셨으면 그냥 놔두시면 제가 시간 될 때 답변 드립니다.
질문주신 부분은 힙 할당 관련 내용인데
heap corruption은 애당초 추적을 하는 것이 100%가 아닙니다.
디버깅 모드라면 특정 값 (ex. 0xCC)를 이용해 지뢰밭을 설치해서
해당 부분이 수정 되었는지로 판별하지만,
애당초 이건 정확하지도 않고 디버그 모드에서만 작동하는 것이라 신뢰할 수 없습니다.
즉 터지지 않아도 문제가 없는게 아니라는겁니다.
그리고 할당하는 크기에 따라 메모리 할당 위치 및 다른 메모리 할당이 근처에 있는지 등
여러가지가 달라지기 때문에 딱히 왜? 라고 대답하기 힘듭니다.
소스코드와 관련하여 질문드립니다
0
70
1
map 컨테이너의 emplace 함수에 대해
0
113
2
시작이 안되네요...!
0
96
2
EAX 명령어 실행 시 RAX의 상위 32비트가 초기화 되는 이유
0
125
1
리틀 엔디안 장점 질문합니다.
0
131
1
메모리 창에 주소를 넣었는데 영어 꺠짐
0
124
1
타입변환#2 build시 knight 인접 stack이 침범당했다는 error가 발생합니다.
0
94
2
map #1 8분 58초 맵은 레드블랙트리로 이루어진 것 같습니다.
1
138
2
hello world 부터 오류 ㅠㅜ
0
188
1
지역변수가 스택? 레지스터
0
129
2
마지막 문제 질문드립니다.
0
164
2
메모리창이 비활성화됩니다.
0
98
1
이중포인터 강좌 부분 질문있습니다.
0
145
1
2를 더하는 이유
0
133
1
메모리 주소 창 엔디안 질문 드립니다. 인프런 봇 답변도 괜찮습니다
1
110
1
해당 코드는 왜 오류가 날까요?
0
155
1
마지막 문제 질문 있습니다.
0
119
1
강의 마지막부분에 질문이 있습니다.
0
191
2
Field초기화
0
140
1
virtual과 override 차이
0
314
2
3:30 참조자 리턴
0
167
1
map 찾기
0
158
1
프로그램 질문드려요
0
260
1
캐스팅 질문
0
138
1





