Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-10-2006, 22:31   #1
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
[c++] key logger

che funzione delle api posso usare per poter registrare i tasti premuti sulla tastiera??

grazie ciao
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2006, 23:05   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Iniziati a guardare questo argomento:
http://windowssdk.msdn.microsoft.com.../ms632589.aspx

In particolare questa API:
http://windowssdk.msdn.microsoft.com.../ms644990.aspx

Quello che devi realizzare è una DLL con una funzione di callback compatibile con LowLevelKeyboardProc:
http://windowssdk.msdn.microsoft.com.../ms644985.aspx
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 14:54   #3
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
in giro non c'è qualche esempio vero???
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 15:03   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Certo, basta cercare...

http://www.codeproject.com/dll/keybo...select=1259703

C'è sicuramente anche molto altro...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 14:42   #5
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
ma si puo fare solo con una dll??
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 15:50   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Certo, altrimenti la callback di hook non può essere raggiunta dagli altri processi...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 16:47   #7
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Avrei sottomano un programma che feci a suo tempo per un esame, il quale, non appena premi il tasto F9, mostra una finestra di dialogo.
Ovviamente, invece di mostrare una finestra di dialogo, potresti sapere che il tasto è stato premuto: estendendo semplicemente il concetto a tutti i tasti...
Se ti interessa lo posto.

EDIT: se non ricordo male, la DLL la caricavo senza lo stub (quindi più semplice da compilare il sorgente, ma leggermente più complicato per reperire i nomi delle funzioni che la DLL esporta, ma del resto sperimentavo per fare bene l'esame )
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 17:42   #8
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
i Low Level Hook non necessitano di DLL, può anche essere un normale eseguibile; però il thread che installa l'hook deve avere una coda di messaggi.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 17:47   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ah, comunque ricordo che un key logger fatto in questa maniera è visibilissimo:
1) perché mamo139 vuole farne un eseguibile, e quindi lo si termina tranquillamente da Task Manager
2) perché anche se fosse una DLL esistono programmi che elencano i moduli di ciascun processo e permettono di scaricarli (io stesso ne ho realizzato uno)
3) perché è possibile intercettare e fermare i messaggi tramite il quale sono implementati i Low Level Hooks; e una volta intercettati è anche possibile sapere a quale thread erano indirizzati.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 17:48   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E' vero, fanno un cambio di contesto per ogni evento...però nell'esempio che avevo linkato usavano la DLL perchè gestivano i tasti con questo hook: http://windowssdk.msdn.microsoft.com.../ms644984.aspx

71104: te che ci capisci più di me in questo tipo di cose, quale dei due conviene usare ? Il LowLevel è rallenta un po' tutto il sistema, no ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 17:50   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Suppongo che mamo139 sia interessato al Key Logger per imparere...sbaglio ? Quindi penso che questa situazione sia accettabilissima per lui...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 17:55   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da cionci
71104: te che ci capisci più di me in questo tipo di cose, quale dei due conviene usare ? Il LowLevel è rallenta un po' tutto il sistema, no ?
secondo me il rallentamento del sistema non è un problema (basta avere l'accortezza di usare I/O asincrono durante la scrittura del log); ciò che è importante considerare nella creazione di un keylogger è il tipo di target: se si tratta di un classico utonto che sa solo usare Messenger allora è anche sufficiente un eseguibile che usa LowLevelKeyboard e che si chiami " explorer.exe" (con uno spazio iniziale) o qualche altro nome ingannevole, ma se abbiamo a che fare con un fior di amministratore di sistema allora qui ci serve un driver che alloca un'area di memoria su cui scrive il vero codice e poi fallisce il caricamento ritornando uno errore dalla DriverEntry; il driver non apparirà come caricato, e nel frattempo il codice allocato "clandestinamente" può installarsi come Keyboard Filter.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 19:24   #13
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da 71104
i Low Level Hook non necessitano di DLL, può anche essere un normale eseguibile; però il thread che installa l'hook deve avere una coda di messaggi.
Non ho capito una cosa: potenzialmente tutti gli hook possono risiedere in un eseguibile invece che in una DLL, ma non potrebbe poi essere un hook globale, bensì solo un hook "thread specific". Quindi stai dicendo che un qualunque hook di tastiera non globale funziona lo stesso? Oppure che un Low Level hook funziona lo stesso anche se non è globale?
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 19:31   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
I LowLevel Hook sono gestiti in modo diverso rispetto agli hook normali...

However, the WH_KEYBOARD_LL hook is not injected into another process. Instead, the context switches back to the process that installed the hook and it is called in its original context. Then the context switches back to the application that generated the event.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 19:39   #15
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da cionci
I LowLevel Hook sono gestiti in modo diverso rispetto agli hook normali...

However, the WH_KEYBOARD_LL hook is not injected into another process. Instead, the context switches back to the process that installed the hook and it is called in its original context. Then the context switches back to the application that generated the event.
Va bene, ma se l'hook installato dal tuo programma non è globale, che sia low level o meno, non riceverà comunque eventi da altri processi/thread. Per intercettare tutti gli eventi della tastiera, l'hook deve essere globale, quindi risiedere in una DLL.
In realtà c'è un modo per rendere l'hook globale SENZA ricorrere all'uso della DLL, ma per fare questo bisgona ricorrere all'assembly.

EDIT: Almeno questo mi risulta, se avete esempi che smentiscono tutto ciò vi prego di postare, sarei molto interessato
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 19:43   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Gli hook necessitano delle DLL per essere appunto iniettati negli altri processi...questo non necessita di essere iniettato negli altri processi perchè probabilmente il sistema tiene una traccia individuale di tutti gli hook di questo tipo e l'hook viene richiamato dal SO (e non dagli altri processi come per i normali hook) quando l'evento viene generato...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 19:45   #17
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da cionci
Gli hook necessitano delle DLL per essere appunto iniettati negli altri processi...questo non necessita di essere iniettato negli altri processi perchè probabilmente il sistema tiene una traccia individuale di tutti gli hook di questo tipo e l'hook viene richiamato dal SO (e non dagli altri processi come per i normali hook) quando l'evento viene generato...
Sì sì mi sa che hai ragione, incuriosito dal tuo post precedente mi sto documentando meglio sui low level hooks: a prima vista è come dici tu, controllo ancora per conferma

EDIT: invece sembra di no, come ricordavo. C'è un modo, ma bisogna ricorrere all'assembly come dicevo prima. Sempre che ci sia un qualche codice che mi smentisca

EDIT 2: sono confuso, ancora non mi è chiaro se un low level hook è automaticamente globale... Devo solo provare...
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson

Ultima modifica di -fidel- : 11-10-2006 alle 19:51.
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 20:11   #18
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da cionci
Suppongo che mamo139 sia interessato al Key Logger per imparere...sbaglio ? Quindi penso che questa situazione sia accettabilissima per lui...
esatto...

cmq per non farmi perdere il filo supponiamo che io voglia fare quello con la dll...
mi sorge subito spontaneo un dubbio... dove cavolo la metto sta dll???
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 20:11   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da -fidel-
EDIT: Almeno questo mi risulta, se avete esempi che smentiscono tutto ciò vi prego di postare, sarei molto interessato
http://www.codeproject.com/samples/F...select=1362970
L'ho modificato un po' e funziona alla perfezione per loggare tutti i tasti
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2006, 20:13   #20
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da cionci
L'ho modificato un po' e funziona alla perfezione per loggare tutti i tasti
posteresti i sorgenti così guardo anche quello??? piu roba c'è piu capisco
mamo139 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
Unity ed Epic Games uniscono le forze: u...
Il Black Friday di 3i: tre robot aspirap...
MSI PRO DP80: il desktop compatto che pu...
Meta perde il suo Chief AI Scientist: Le...
Smartphone più costosi dal 2026: ...
Black Friday Dreame: come orientarsi fra...
POCO conferma le specifiche dei nuovi F8...
MOVA Black Friday 2025: fino a 550€ di s...
Xiaomi TV F Pro a prezzi super ribassati...
Portatile Dell tuttofare scontatissimo: ...
Il nuovo Samsung Galaxy A57 avrà ...
Samsung Galaxy S25 Ultra 256GB e 1TB in ...
PS5 in super offerta per il Black Friday...
USA, export di chip AI: Casa Bianca cont...
FSR 4 su Radeon RX 7000, 6000 e 5000? Ci...
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:49.


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