2010-06-17 16 views
5

estoy corriendo un muy simple programa en C++:AVG Acceso advertencia denegado cuando se ejecuta el más simple programa en C++

#include <list> 
#include <vector> 

int main(int argc, char **args) { 

} 

voy a la línea de comandos y compilar y ejecutar:

g++ whatever.cpp 
a.exe 

Normalmente esto funciona esta bien Se compila bien, pero cuando lo ejecuto dice Acceso denegado y aparece AVG diciéndome que se ha detectado una amenaza Trojan Horse Generic 17.CKZT. Intenté compilar de nuevo usando el compilador de Microsoft (cl.exe) y ejecuta multas. Así que volví y agregué:

#include <iostream> 

compilado usando g ++ y en ejecución. Esta vez funcionó bien.

Entonces, ¿alguien puede decirme por qué AVG informaría un método principal vacío como caballo de Troya, pero si se incluye el encabezado iostream, no?

ACTUALIZACIÓN:

he añadido una declaración retorno al método principal y ahora me parece que solo me dan el error si vuelvo 0. Cualquier otro valor de retorno y parece que funciona bien.

¿Qué está pasando aquí?

+3

En mi experiencia de software anti-virus es un caso perdido en general, y * * completamente inaceptable en una máquina de desarrollo. –

+0

poco fuera de tema, pero por lo que entiendo, actualmente Avast! Antivirus y NOD32 tienen mejores motores heurísticos que AVG. – greyfade

+0

Gran respuesta aquí por qué su programa en C++ es etiquetado por un virus AVG: http://stackoverflow.com/a/17431911/445131 –

Respuesta

4

You're not the first person to encounter false positives by antivirus software.

Lo que probablemente ocurrió es que la heurística antivirus tropezó en las bibliotecas de ejecución estándar presentes en sus programas, ya que el malware los utiliza también. ¡Por supuesto, el software legítimo también los usa! El hecho de que no tropezó en iostream probablemente significa que iostream no es muy popular entre los escritores de malware.

+0

Gracias, ya que acabo estoy empezando en C++ es bueno saber que un error como ese no es por algo estúpido que he hecho. – DaveJohnston

+1

LOL. Nop. Es por algo estúpido que * alguien más * ha hecho. Y tampoco es exactamente un problema amable para un principiante. Gracias a Dios por StackOverflow. –

1

Si solo desea resolver el problema lo más rápido posible,
simplemente coloque la carpeta de los archivos ejecutables en la lista blanca de AVG.

Mis pasos preferidos:

  1. por razones de seguridad, debe enviar su ejecutable
    a un virus en línea/escáner de malware como estos:
    • www.virustotal.com: VirusTotal - Free Online Virus y Malware
    • virusscan.jotti.org/en: malware de Jotti escanear

  2. si denuncian 'falso positivo', a continuación, insertar la ruta de los ejecutables compilados
    en lista blanca de AVG, por lo que no explora esa carpeta. No conozco AVG,
    , pero todos los antivirus tienen la opción de excluir archivos del análisis.

  3. Si es lo suficientemente valiente, depure el ejecutable y busque la causa de la llamada.

  4. Una solución alternativa puede ser la de virtualizar un sistema Linux ligero,
    instalar gcc (con g ++, por supuesto) en él, y el uso que "g ++ entorno dedicado"
    a desarrollar sus aplicaciones de línea de comandos.


// La primera etapa es una suma de this conversation.
// Si me envía la fuente y el ejecutable 'infectados' que se ha compilado, a continuación, lo comprobaré.
// La instrucción return que falta en la función (C++) main significa returns 0.

+0

Una buena respuesta, pero esto parece un exceso extrema de la cuestión planteada. – Akusete

+0

:) sí, tienes razón .. tal vez, pero exactamente lo que puede encantar a distancia la materia 'maliciosa'? ¿Qué tiene tal efecto a través de #include ? ¿Qué es? ¿O esta es otra pregunta? – ch0kee

Cuestiones relacionadas