3 nov 2010

Broma-gh0st

Bueno no tengo un título mejor, con ver el code se ppuede hacer uno la idea de sobre que va el tema..el caso es que realmente si alguien lo ejecuta sin más y no sabe el nombre del ejecutable se puede llevar un pequeño susto.

#include 
 
#define ms 10
HWND hwnd;
CHAR szMessage[ms][512] = {"El ordenador esta cerrandose. Motivo desconocido..",
          "addcc %r3,%r5,%r3",
          ".........",
          "Error 0x004...",
          "no te gires...ahora...",
          "It's here...", //como me gusta destino final jaja.
          "ayuda por favor...",
          "...necesito ayuda...",
          "es la hora..",
          "........"};
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
  hwnd=FindWindowA("ConsoleWindowClass",NULL);
  ShowWindow(hwnd, SW_HIDE);
 
 srand(GetTickCount()); //Otro modo de sacar numeros pseudo-aleatorios
 while(TRUE)
 {
  Sleep(8000);
  int azar = (rand() % ms);
  for(int a = 0; a < lstrlen(szMessage[azar]); a++)
  {
 
   keybd_event((UCHAR)VkKeyScan(szMessage[azar][a]), NULL, NULL, NULL);
   Sleep(rand() % 200); //Esto lo hace un poco más realista
  }
 }
 return 0;
}
 
Bueno este code lo hice en 5 minutos, despues de ver la peli Destino Final 2, se me ocurrio la idea de que seria un cague que el ordenador escribiera solo, seguro que algo parecido a esto ya existe, pero quizas no implementado de la misma manera. Bueno este es un code muy sencillo solo uso la cabecera windows.h, y bueno primero creo un array multidimensional donde estan los mensajes que se escribiran.. Bueno luego le puse el modo de Oculto para que no se viera una ventanita negra y sea muy sospechoso.
hwnd=FindWindowA("ConsoleWindowClass",NULL);
  ShowWindow(hwnd, SW_HIDE);
Luego esta srand....demasiado explicado, uso la función GetTickCount() +info Y luego ya viene la función, uso el while porque tenia pensado al principio, ponerle que si apretabas alguna tecla se cerraba, pero al final lo deje así. Cogemos un número al azar comprendido entre el 1 y el 11, y vamos imprimiendo caracteres.
Sleep(rand() % 200);

Esto lo hace aún más realista, pues hace como una pequeña pausa pseudo-aleatoria..

Saludos

1 comentario: