2017-01-17 1 views
3

방금이 코드가 일부 바이러스 백신 프로그램에서 바이러스로 탐지되었음을 발견했습니다.왜이 짧은 C 코드가 바이러스로 탐지됩니까?

#include <stdio.h> 

char* func(char *str) { 
    return str; 
} 

void main() { 
    char *str = "What the hack\n"; 
    char *str2 = func(str); 
    printf(str2); 
} 

VirusTotal 검사 결과 이미지 :

enter image description here

당신은 이유를 알고 있습니까?

+0

을. 컴퓨터에 바이러스가있을 수 있습니다. – user3629249

+1

아마도 "해킹"이라는 단어가 있기 때문일 수 있습니까? 어쨌든, 나는 확실하지 않다 * 프로그래밍과 관련된 질문인가? – paxdiablo

+0

Visual Studio에서 허용하는 것과 관계없이'main()'의 반환 값은 항상'int'입니다. – user3629249

답변

0

문제 :

귀하의 프로그램은 컴파일 된 실행 파일입니다. 즉 배경이 없다는 뜻입니다. 예를 들어, verified publisher이 연결된 경우 프로그램의 플래그가 적어집니다. See this post for some more detail on that. 또한 앱이 보이지 않게 실행됩니다. 즉, 사용자 입력을 허용하지 않습니다. That is often a 'red flag' that will be detected by some antivirus programs.

증명 : 나는 프로그램과 같이 변경 그러나 as-is : 나는 그것을 컴파일 할 때 귀하의 초기 프로그램은 다음과 같습니다

프로그램은 다음과 같습니다

#include <stdio.h> 

char* func(char *str) { 
    return str; 
} 

void main() { 
    char str[] = "What the heck\n"; 
    char *str2 = func(str); 
    printf(str2); 
} 

합니다 (단어가 다르게 변경되어 초기화 됨) :

slightly altered program

정확히으로 보입니다. 이제

, 나는이 같은 프로그램 변경 :

#include <stdio.h> 

//char* func(char *str) { 
// return str; 
//} 

void main() { 
    char str[] = "What the heck\n"; 
    //char *str2 = func(str); 
    //printf(str2); 
} 

결과는 다음과 같이 : 나는 어떤 바이러스를 컴파일하지

near-empty program

관련 문제