c++ - para - cortafuegos avast bloquea internet
Mis programas están bloqueados por el antivirus avast (9)
Soy un programador aficionado, y me estoy desesperando y enojando debido a un gran problema: la mayoría de mis programas están bloqueados por un antivirus avast, mientras que otros no, y no entiendo por qué. Cuanto más trato de investigar, menos entiendo cuál podría ser el problema.
Solicito su ayuda para encontrar una solución para que mis programas ya no estén bloqueados o, por defecto, al menos algunas pistas sólidas que expliquen por qué podría ser así. Ya hay muchos temas sobre eso en la web. Sin embargo, la mayoría de ellos solo dan respuestas superficiales: solo explican cómo funciona el antivirus con las firmas y las heurísticas de detección, o afirman que solo tiene que agregar la aplicación ofensiva en la lista blanca sin hacer ninguna otra pregunta. Si bien es cierto, no son respuestas aceptables en mi opinión, porque aún me quedan mis propios programas que se niegan a trabajar sin una idea concreta para comenzar a investigar.
En primer lugar, el único antivirus que bloquea mis programas es avast 7.x. Ningún otro antivirus ve ningún inconveniente para ejecutar mi software. En segundo lugar, no me he desviado; Se instala en la máquina de un amigo. Tengo Windows 7, él tiene Windows XP. Estoy completamente seguro de que el problema es solo avast: cuando está deshabilitado temporalmente, o si el programa se agrega a su lista blanca, todo funciona bien como se esperaba.
Tres programas diferentes están en problemas:
- Un editor de texto, con el objetivo de reemplazar el bloc de notas de Windows a la vez que es simple, eficiente y personalizable.
- Un pequeño reproductor de audio amateur muy simple de usar.
- El programa cliente de una plataforma de juegos en línea, que actualmente tiene más de 1000 usuarios.
El primero es de código abierto, puedo dar un enlace al ejecutable y al código fuente si es necesario. Los otros dos son de código cerrado pero de uso gratuito, solo puedo dar un enlace al ejecutable de la versión actual. Las únicas cosas obvias entre estos tres programas son yo como desarrollador, mi máquina de Windows 7 que los compiló, la familia de compiladores que es MinGW / GCC, y todas son aplicaciones de GUI win32 sin ningún marco (sin MFC, sin WPF, sin QT, WXWidgets o lo que sea; solo aplicaciones de GUI de win32 / C puras)
Aquí están mis observaciones y aunque hasta ahora:
- Las versiones 1.1, 1.2.1 y 1.3 de mi editor de texto están bloqueadas. Se encuentran en C, no en C ++, se han compilado con GCC 3.4.5 en modo Unicode y se distribuyen en archivos zip portátiles (por medio de un dispositivo portátil, simplemente me refiero a que no se requiere instalación ni instalación)
- La versión 1.4.1 del mismo editor de texto no está bloqueada. Se ha compilado con GCC 4.7.2, aún en C y no en C ++, aún en modo Unicode y aún como un archivo zip portátil
- Todas las versiones de mi reproductor de audio están bloqueadas; están en C ++ con las funciones 0x habilitadas, se han compilado por GCC 4.7.2 en modo ANSI, distribuido en un archivo zip portátil
- La versión actual de mi juego, 1.7.2, no está bloqueada. está en C, se ha compilado con GCC 3.4.5 en modo ANSI y se distribuye como un instalador de inno-setup 5.
- La nueva versión de mi juego, 2.0.0, que actualmente es una beta privada, está bloqueada. Está en C ++ con las funciones 0x habilitadas, se ha compilado con GCC 4.7.2 en modo Unicode. Lo comparto con mi equipo privado de pruebas beta como archivos zip dentro de una carpeta de Dropbox privada
El problema es causado por avast 7.x auto-sandbox. Lo siguiente sucede cuando uno intenta iniciar un programa que no le gusta a avast:
- El usuario hace doble clic o pulsa enter en el ejecutable
- El programa se inicia pero avast se bloquea de forma casi instantánea y forzada.
- Aparece un mensaje emergente que dice algo como: avast ha puesto este programa en su caja de arena porque su reputación es baja
- Si se hace clic en el botón Continuar de la ventana emergente, la ejecución del programa se reinicia y funciona normalmente
- Si no hace clic en el botón Continuar, Windows Explorer se congela, el ejecutable permanece en el administrador de tareas y utiliza invariablemente 76 KB de RAM, mientras que es imposible eliminarlos. Finalmente, después de aproximadamente 5 minutos, Windows Explorer se descongela, el programa se reinicia y funciona normalmente.
Esto es inaceptable. Los usuarios novatos de mi programa, especialmente el juego, no saben cómo funciona el antivirus; no sé cómo ponerlo en la lista blanca y por qué lo desbloqueará; No sé cómo cambiar la configuración de sus antivirus; si ven el pop-up, no lo entenderán y terminarán teniendo miedo o decepción porque no pueden jugar sin saber por qué; y si no ven la ventana emergente, no puedo esperar que esperen 5 minutos con una computadora medio congelada. Cada vez que quieren jugar.
A partir de ahí, hice las siguientes deducciones:
- Mi máquina no está infectada y no se inyecta ningún virus en los ejecutables que distribuyo; de lo contrario, todos los programas recientes serían bloqueados; Tengo dos que son (mi jugador y la nueva versión de mi juego), mientras que uno no lo es (la última versión de mi editor de texto). El 1.7.2 del juego se compiló en marzo de 2012, mientras que el 1.4.1 del editor de texto es de octubre de 2012.
- La versión más reciente de GCC 4.7.2 no está en la causa, por el mismo razonamiento; Lo mismo para compilación ANSI vs Unicode.
- El tiempo de ejecución de minGW C ++, distribuido como un DLL de enlace automático, obligatorio en todas las aplicaciones de C ++ compiladas con GCC 4.7.2, probablemente no sea la causa, porque muchos programas bien conocidos lo utilizan; y mi editor de texto está bloqueado y está en C, y por lo tanto no lo uso.
- Mi reproductor de audio y mi juego tienen la biblioteca de audio en común; Esta última no es la causa, porque la versión 1.7.2 de mi juego funciona y la nueva versión beta privada no. Y, por supuesto, esa biblioteca de audio también se usa en muchas otras aplicaciones conocidas o menos conocidas que no están bloqueadas.
- Tanto el jugador como el juego acceden a la red usando winsock; Así que por el mismo razonamiento, tampoco es la causa.
- Si realmente fuera la reputación de avast, ¿por qué la versión 1.4.1 de mi editor de texto, que no está bloqueado, solo se ha descargado unas 70 veces, mientras que la versión 1.3 que está bloqueada se ha descargado más de 300 veces? Se ve completamente ilógico. ¿Son 70 usuarios suficientes para reclamar algo sobre reputación? ¿Es más con 300 usuarios? Realmente no lo creo ... probablemente sea necesaria una masa crítica de una docena de miles de usuarios.
Además de eso, también pienso que el hecho de que estoy distribuyendo mis programas como archivos zip portátiles puede ser un motivo para el bloqueo de Avast y, a la inversa, el hecho de que un programa esté bien instalado en los archivos del programa puede ser un motivo para confiar en él. Más. Así que hice una experiencia simple: compilé un nuevo instalador de inno-setup 5 para la versión beta 2.0.0 de mi juego, así como uno para la versión 1.3 de mi editor de texto, ¡y descubrí que los propios instaladores estaban bloqueados!
Hice otra experiencia con mi amigo, donde traté de encontrar exactamente el lugar donde los programas fallan, basado en el uso de MessageBeep (¡MessageBox también está bloqueado!). No noté nada problemático. El juego se bloquea cuando se llama SetDlgItemText por primera vez en el cuadro de diálogo de inicio de sesión, pero si elimino todo SetDlgItemText, se bloquea más abajo. En el editor de texto, se bloquea al rellenar la barra de menú ...
Mi conclusión es que hay algo que no me gusta de avast en la nueva versión de mi juego, en las versiones anteriores de mi editor de texto y en mi reproductor de audio. Algo que está ausente en la versión más reciente de mi editor de texto. Qué podría ser ? Tienes alguna pista ? ¿Tiene solo una idea de cómo puedo proceder para encontrar lo que es, así que espero poder arreglarlo? ¿Hay solo una manera de analizar un problema de este tipo, o es el mundo de agujeros taladrado por avast?
Tenga en cuenta que soy una persona soltera y no una empresa, todos los programas son de uso gratuito, no he pagado ningún IDE para desarrollarlos y los usuarios no me pagan cuando los usan, por lo que supongo que un El certificado probablemente no sea asequible en absoluto. Además, no sé si es una verdadera solución, cómo firmar una aplicación compilada con GCC, y realmente no quiero cambiar a una "usine à gaz" como MSVC. Preferiría olvidar esa opción si hay alguna otra solución, incluso una muy sucia.
Gracias por leer.
Avast tiene una característica llamada cibercaptura / escaneo profundo.
Esto es lo que está causando sus problemas.
Ni siquiera se molesta con las heurísticas.
Si no hay una firma autenticode, la considerará sospechosa y la enviará a avast para que la analicen, y hasta que declaren que está bien, no podrá ejecutarla. Una vez que lo hayan declarado bien, todos los demás con avast pueden ejecutarlo de forma segura si coincide con su versión.
Bien, descifrado, vaya a su configuración de Avast y hay un área donde puede agregar configuraciones de excepciones> antivirus, luego se desplaza hacia abajo en ese menú y hay un área titulada EXCLUSIONES donde puede navegar a la ruta de su estudio visual, es decir. c:> john> documents> visualStudio2010> projects ::: selecciona la ruta de tu proyecto y la agregará a la lista de excepciones de escaneo y deberías poder probar tus archivos ... funcionó bien para mí. También deshabilité la exploración profunda en el mismo menú debido a una sugerencia de otro miembro
Debe ir a su cuenta de antivirus-> configuración-> exclusiones o algo similar y escribir la ruta del archivo como lo mencionaron otros. Lo hice con avast. La primera vez no funcionó, así que desinstalo e instalo y luego fui a las exclusiones y ahora funciona.
Los programas audiovisuales funcionan analizando los archivos en busca de patrones de "mal comportamiento" conocido.
Si su programa está desreferenciado de punteros, escribiendo 200 bytes en un búfer de 100 bytes o similar, es probable que genere un código que sea similar a una firma de un ataque conocido. (ya que la mayoría de los ataques explotan este tipo de errores de programación)
Debería depurar su código (si está en Linux intente con valgrind o efence) y asegúrese de que la memoria se maneje correctamente.
Recientemente encontré un problema donde algunas de mis aplicaciones no se ejecutaban. Se mostrarían como procesos (bajo Windows), pero nunca bajo la pestaña de aplicación dentro del Administrador de tareas. Los Procesos típicamente tenían un tamaño de memoria de alrededor de 120K, y algunas veces habría múltiples procesos.
El culpable es Avast DeepScreen. De Avast: "La tecnología DeepScreen le permite a Avast tomar decisiones en tiempo real cuando se ejecuta un archivo desconocido".
En mi caso, Matlab fue bloqueado, al igual que otras aplicaciones.
Avast no dio indicios de que estuviera bloqueando una aplicación, lo que hacía que "Eliminar Avast!" comentar arriba bastante apropiado.
Te puede interesar este artículo:
http://www.codeproject.com/Articles/71128/The-Case-of-Evil-WinMain
Ilustra cómo el antivirus puede volverse loco literalmente cuando se trata de pequeños programas que vinculan una biblioteca simple en tiempo de ejecución de C.
Lo único que puede hacer es señalar el problema a los fabricantes de antivirus y esperar un buen comportamiento por parte de ellos.
Un comentario anterior se refiere a ''si no está referenciando los punteros''. Si usa C o C ++, eso es lo que hará su programa, así es como funcionan.
Y como Carpetsmoker dice que no sirve de nada arreglar tus propios ajustes de Avast, son todas las personas que quieren descargar tu software, pero están asustados por Avast.
Una buena manera de aumentar la confianza de todo el software AV es firmar digitalmente su código. Thawte tiene los certificados más baratos y reconocidos que comienzan por debajo de 100 € / año
- actualización después del comentario de @Herr_Doktor casi dos años después -
Recientemente me encontré con una nueva situación cuando la firma de código no era una opción: escribo código abierto para Joomla en PHP. Después de que recibí las primeras indicaciones de que Avast marcó mi archivo como un (falso) positivo, me puse en contacto con ellos y me agregaron a la lista blanca en cuestión de horas.
Para facilitar mi vida, estoy creando un archivo separado con la función supuestamente "peligrosa", de modo que los cambios futuros en el programa no requieran volver a enviarlo para la inclusión en la lista blanca.
Posiblemente la velocidad en su respuesta fue ayudada por el hecho de que leer un archivo php corto es más rápido que el código compilado de ingeniería inversa; No obstante, fueron amables, rápidos y efectivos.
Vaya a avast ''file sheild'' y haga clic en el botón ''Configuración de expertos''. luego busque y haga clic en la opción ''exclusiones'' del menú en el lado izquierdo. Agregue su proyecto foldr en la lista de exclusión de archivos. Esto es seguro a menos que los virus peligrosos se arrastren a la carpeta de su proyecto sin su conocimiento: P