Cuando se ejecuta un software antivirus durante la instalación de mi software, ciertos componentes no se instalan correctamente. Siempre les digo a los usuarios que lo apaguen primero. Pero, se olvidan y luego estoy trabajando en mis cerebros tratando de descubrir qué salió mal. ¿Hay alguna función Delphi que cualquiera sepa que pueda detectar si se está ejecutando el software AntiVirus, por lo que puedo alertar al usuario antes de que comience la instalación?Delphi: ¿cómo puedo detectar la presencia del software antivirus?
Respuesta
Desde XPsp2, existe el centro de seguridad que registra si hay un antivirus conocido.
Afaik esto funciona sobre la API WMI, que se puede acceder a través de Winapi. (y Jedi tiene encabezados para eso).
que he encontrado algunos VBScript aquí: http://blogs.msdn.com/b/alejacma/archive/2008/05/12/how-to-get-antivirus-information-with-wmi-vbscript.aspx
Otro consejo: tratar de comunicar a sus usuarios en modo alguno posible apagar análisis heurístico tanto como sea posible. Estos son generalmente la causa de falsos positivos, y puede ser un mensaje más fácil de llevar que matar el antivirus en conjunto.
Asegúrese de leer los comentarios, porque esa pieza exacta de código no funcionará a partir del SP1 de Vista: eliminaron el espacio de nombres que necesita. –
También hay alternativas en los comentarios. Ninguno de ellos es lindo, pero toda esta situación no lo es. (como ya dije, instalado y "encendido" también son cosas diferentes) –
Debo admitir abiertamente que lo voté negativamente. Es una idea terrible y terrible llevar a los usuarios a reducir la cantidad de protección que ofrecen sus antivirus. Recuerde: 100 falsos positivos son aún mejores que un falso negativo, y por lo general, las heurísticas son * buenas *. –
Hemos tenido éxito comprobando los procesos en ejecución para cualquier proceso que hayamos determinado antes, es un programa AV. (Puede enumerar una lista de procesos utilizando un código simple que se puede encontrar buscando en Google algo Procesos lista actualizada de Delphi)
Si nos encontramos con uno, le decimos al usuario y se niegan a continuar ...
Para construir nuestra lista de procesos que sabemos que son AV, instalamos versiones de prueba de los programas AV y luego miramos la lista de procesos (ya sea en el administrador de tareas o usando nuestro código de procesos de enumeración). No es difícil detectarlos. . y puede cerrar los programas AV y ver si los procesos que identifica desaparecen. (Process Explorer es muy útil: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)
Por ejemplo, algunos de los procesos actualmente buscar incluyen McShield (McCaffe), nProtect (Norton), PccNTMon (Trend Micro), etc.
Obviamente esto won' t atrapa TODOS los programas AV, pero si haces lo anterior con los principales proveedores (Norton, McCaffe, Trend Micro, ZA, etc.), tendrás un gran porcentaje de los programas AV en el campo cubierto.
Una cosa que es bueno de esto es que es fácil de implementar y no requiere ningún nivel de llamadas a la API de Windows muy bajas, excepto para enumerar los procesos actualmente en ejecución ...
Bastante frágil: sería mejor que * siempre * muestre una pantalla de bienvenida (que * no * parece un CLUF o lo que sea) que indique a los usuarios que ejecuta el antivirus el software podría ser problemático durante la instalación. – snemarch
ciertos componentes no lo hacen instale correctamente
Explique qué componentes está instalando, cómo está instalando esos componentes y cómo está fallando su instalación, y será más fácil recomendar una solución. Además, ¿está utilizando un producto de instalación o su propio código de instalación? Si es su propio instalador o si puede ejecutar automáticamente su propio código después del instalador, puede hacer su propia comprobación programática para confirmar que su instalación es 100% correcta, y si no, informe lo que falló y recuerde al usuario que apague el antivirus cosas y vuelva a intentar la instalación.
Acabo de escribir en mi blog un artículo que le indica cómo detectar la presencia del software antivirus en las ediciones de escritorio de Windows (XP, Vista y 7).
Getting the installed Antivirus, AntiSpyware and Firewall software using Delphi and the WMI
veo que esta es una pregunta "viejo", pero ... lo encontré Retreive Antivirus Information using WMI
Si bien esto podría responder teóricamente a la pregunta, [sería preferible] (http://meta.stackexchange.com/q/8259) incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. – Jack
- 1. Cómo detectar la presencia de cierto dispositivo
- 2. Detectar antivirus en Windows usando C#
- 3. ¿Cómo detectar presencia y ubicación de JVM en Windows?
- 4. ¿Cómo detectar la presencia de hardware en el teclado?
- 5. Software Antivirus Windows Server 2008 con un API
- 6. Programas Delphi bloqueados por Kaspersky Antivirus. Necesita workarround
- 7. Cómo detecta libgdx la presencia del teclado
- 8. Ejecutar el programa antivirus mediante programación usando delphi
- 9. ¿Cómo puedo detectar una presencia en la barra de desplazamiento (usando Javascript) en HTML iFrame?
- 10. Java bloqueado por el software antivirus (específicamente AVG)
- 11. Algoritmo para detectar la presencia de texto en la imagen
- 12. Java Antivirus ... ¿es posible? ¿Cómo?
- 13. ¿Cómo puedo detectar un depurador u otra herramienta que pueda estar analizando mi software?
- 14. Detectar una activación de conexión a Internet con Delphi
- 15. ¿Cómo puedo prevenir una alarma de virus falsos positivos en mi software?
- 16. Detectar presencia de plantilla en tiempo de compilación
- 17. ¿Cómo volver a detectar una memoria flash USB por software?
- 18. ¿Cómo puedo detectar .NET 3.5 en WiX?
- 19. Delphi - ¿Cómo puedo mejorar
- 20. ¿Cómo puedo decirle al "centro de seguridad de Windows" que soy un "antivirus"?
- 21. Integración antivirus en PHP
- 22. Interrupción del software
- 23. ¿Cómo puedo detectar la aplicación actualmente enfocada?
- 24. ¿Cuál es la mejor forma de detectar la presencia de SMO?
- 25. Un buen método para detectar la presencia de una característica en particular en una imagen
- 26. Detectar actividad de disco en Delphi
- 27. ¿Cómo detectan los programas antivirus el virus de prueba EICAR?
- 28. Integración antivirus con la aplicación .net
- 29. Detectar la presencia de contenido stdin en el script de shell
- 30. ¿Cómo detectan los virus los programas antivirus?
Problema interesante - qué tipo de software está escribiendo? –
Si este es un problema recurrente, yo diría que el problema es probablemente su instalador. Tenga en cuenta que debido a la genialidad de Delphi en la creación de ejecutables independientes que no necesitan tiempos de ejecución inflados, una gran cantidad de virii y malware está escrito en él. Por lo tanto, es bastante frecuente que el software antivirus identifique algunas partes de un virus que también se encuentran en otros programas delphi. Simplemente desactivar su antivirus no ayudará, simplemente interferiría tan pronto como se vuelva a encender. – GrandmasterB
@GrandmasterB: ... en lugar de depender de tiempos de ejecución inflados, Delphi produce ejecutables individuales bastante hinchados, lo que por supuesto es mucho más sorprendente que un solo gran tiempo de ejecución y pequeños ejecutables individuales. – snemarch