2010-08-27 17 views
5

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?

+0

Problema interesante - qué tipo de software está escribiendo? –

+1

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

+1

@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

Respuesta

3

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.

+0

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. –

+0

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) –

+0

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 *. –

0

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 ...

+0

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

1

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.

1

veo que esta es una pregunta "viejo", pero ... lo encontré Retreive Antivirus Information using WMI

+1

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

Cuestiones relacionadas