Annullamento della registrazione dei hook della tastiera in base alla scadenza del timeout

1

Sto scrivendo un gestore di password per Windows che voglio proteggere dai keylogger. Esiste un timeout di 5000 ms per i hook della tastiera .

The hook procedure should process a message in less time than the data entry specified in the LowLevelHooksTimeout value in the following registry key:

HKEY_CURRENT_USER\Control Panel\Desktop

The value is in milliseconds.

(Il valore predefinito di quella chiave del Registro di sistema è 5000)

Supponendo che un gestore di password sia in esecuzione come amministratore, è possibile sospendere tutti i programmi, simulare la digitazione di un tasto, attendere 5 secondi e quindi verificare che tutti i hook della tastiera siano stati disabilitati da Windows?

Non ho trovato un modo per annullare la registrazione di tutti gli hook tramite UnhookWindowsHookEx perché richiede un handle che non ho. Questo è il motivo per cui sto ricorrendo alla loro annullamento della registrazione per timeout.

    
posta Thomas Weller 08.01.2015 - 22:17
fonte

2 risposte

5

Ci sono tre ragioni per cui posso capire perché questa ipotesi è rischiosa.

  1. Gli hook vengono rimossi solo in Windows 7 e versioni successive. Questa è probabilmente l'ultima delle tue preoccupazioni, ma vale la pena menzionarla.
  2. L'hook viene rimosso silenziosamente e l'applicazione non ha modo di sapere se queste azioni si sono verificate e / o hanno avuto esito positivo.

Quindi, anche se la tua ipotesi è corretta, non c'è modo per te di sapere che i ganci sono stati rimossi. Il che significa che dovresti assumere che non tutti sono stati rimossi.

  1. Questo si applica solo ai ganci per tastiera che sono stati registrati utilizzando SetWindowsHookEx

Questo è il problema più urgente. Un sacco di malware non utilizzerà l'API di hooking integrata. Scriveranno i propri ganci che non saranno registrati con il sistema operativo. O ad un livello ancora più basso per i key-logger, si agganceranno o installeranno il proprio driver di sistema. Che, ancora una volta, non si registrerà con il sistema operativo.

È possibile sospendere tutti i programmi, ma potrebbe non essere possibile sospendere i servizi su cui è installato il key-logger. Mentre penso che sia nobile da parte tua cercare di difendermi dai key-logger, non credo che sia una tua responsabilità.

    
risposta data 09.01.2015 - 19:12
fonte
-1

Non funzionerà. Gli hook non sono programmi, sono DLL che vengono eseguiti nel contesto del tuo programma. A meno che non siano scritti molto male, non puoi facilmente influenzare quanto tempo impiegano per eseguire.

    
risposta data 09.01.2015 - 21:32
fonte

Leggi altre domande sui tag