«buffer-overflow» 태그된 질문

14
왜 일부 플랫폼에서는 그렇지 않고 다른 플랫폼에서는 루프 종료에 사용합니까?
저는 최근에 C를 배우기 시작했고 C를 ​​주제로 수업을 들었습니다. 나는 현재 루프로 놀고 있고 설명하는 방법을 모르는 이상한 행동을하고 있습니다. #include <stdio.h> int main() { int array[10],i; for (i = 0; i <=10 ; i++) { array[i]=0; /*code should never terminate*/ printf("test \n"); } printf("%d \n", sizeof(array)/sizeof(int)); return 0; } …

11
gets 함수가 왜 그렇게 사용되어서는 안되는 위험한가요?
gets()GCC로 함수 를 사용하는 C 코드를 컴파일하려고 하면 다음 경고가 표시됩니다. (.text + 0x34) : 경고 :`gets '함수는 위험하므로 사용해서는 안됩니다. 나는 이것이 스택 보호 및 보안과 관련이 있음을 기억하지만 정확히 왜 그런지 잘 모르겠습니다. 이 경고를 어떻게 제거 할 수 있으며 사용에 대한 경고가 표시되는 이유는 gets()무엇입니까? 경우 gets()매우 …
229 c  fgets  buffer-overflow  gets 

5
이 코드는 왜 버퍼 오버 플로우 공격에 취약합니까?
int func(char* str) { char buffer[100]; unsigned short len = strlen(str); if(len >= 100) { return (-1); } strncpy(buffer,str,strlen(str)); return 0; } 이 코드는 버퍼 오버플로 공격에 취약하며 이유를 알아 내려고 노력 중입니다. 나는 그것이 대신 len선언 된 것과 관련이 있다고 생각 하지만 실제로는 확실하지 않습니다.shortint 어떤 아이디어?


10
왜 strcpy 대신 strncpy를 사용해야합니까?
편집 : 예제에 대한 소스를 추가했습니다. 내가 건너 온 이 예 : char source[MAX] = "123456789"; char source1[MAX] = "123456789"; char destination[MAX] = "abcdefg"; char destination1[MAX] = "abcdefg"; char *return_string; int index = 5; /* This is how strcpy works */ printf("destination is originally = '%s'\n", destination); return_string = strcpy(destination, …

6
scanf가 C에서 버퍼 오버플로를 일으키는 것을 방지하는 방법은 무엇입니까?
이 코드를 사용합니다. while ( scanf("%s", buf) == 1 ){ 임의 길이의 문자열을 전달할 수 있도록 가능한 버퍼 오버플로를 방지하는 가장 좋은 방법은 무엇입니까? 예를 들어 다음을 호출하여 입력 문자열을 제한 할 수 있다는 것을 알고 있습니다. while ( scanf("%20s", buf) == 1 ){ 하지만 사용자가 입력 한 모든 것을 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.