문자열에 데이터를 넣을때 항상 마지막 문자에는 '\0'이 들어간다.
void main(void){
char str[10] = {"bufferover"};
return;
}
그러나 이런 코드의 경우에는 메모리 마지막 주소에 r이 들어가기 때문에 '\0'이 들어갈 자리가 없다. 이렇게 되면 원격코드실행이 가능해지는 취약점이 발생한다. 이를 보고 buffer overflow라 한다
'IT > C' 카테고리의 다른 글
short curcuit tip (0) | 2023.09.12 |
---|---|
divide zero (0) | 2023.09.07 |
VLA (0) | 2023.09.06 |
c의 long double (0) | 2023.09.06 |