C memory·Buffer boundary 단계별 흐름 C 배열의 끝을 넘어 쓰면 왜 다른 데이터와 제어 흐름까지 위험할까요? Stack 또는 heap에 고정 크기 destination buffer가 배치됩니다. → 프로그램이 attacker-controlled input length를 제대로 확인하지 않습니다. → Buffer 끝 이후의 인접 memory까지 write가 계속됩니다. → 다른 변수·pointer·return address가 손상될 수 있습니다. → 결과는 crash부터 data corruption·control-flow hijack까지 이어질 수 있습니다. → 근본 수정은 destination 크기와 null terminator를 고려한 bounded operation과 정확한 length check입니다. C 배열의 끝을 넘어 쓰면 왜 다른 데이터와 제어 흐름까지 위험할까요? 화살표를 왼쪽에서 오른쪽으로 따라가며 입력·처리·결과를 확인하세요. 1 Stack 또는heap에 고정 크기destinationbuffer가배치됩니다. 2 프로그램이attacker-controlledinput length를제대로 확인하지않습니다. 3 Buffer 끝 이후의인접 memory까지write가 계속됩니다. 4 다른변수·pointer·returnaddress가 손상될수 있습니다. 5 결과는 crash부터datacorruption·control-flowhijack까지 이어질수 있습니다. 6 근본 수정은destination크기와 nullterminator를고려한 boundedoperation과 시험 읽기 순서 등장 주체 또는 입력 → 처리 규칙 → 보안 효과 → 조건과 한계