Rilevare quando uno screenshot è preso da un software (spyware) in Windows [chiuso]

2

La maggior parte degli strumenti di trojan, spyware e keylogger hanno la possibilità di fare screenshot. C'è un modo per rilevare se un'app o un software sta facendo uno screenshot in Windows? Forse una chiamata API di Windows o dll?

Questo sarebbe utile per trovare malware.

    
posta Anders 08.06.2016 - 09:50
fonte

2 risposte

1

La mia risposta richiede la scrittura di un codice. Sto solo postando questa risposta perché hai menzionato una soluzione correlata alla programmazione nella tua domanda.

Fin da Windows Vista, il kernel di Windows solleva un evento praticamente per ogni singola cosa che accade sul tuo computer. Microsoft fornisce una libreria chiamata TraceEvent per .NET che rende assolutamente banale l'aggancio di questi eventi.

Per rilevare uno screenshot, è possibile monitorare eventi di scrittura della memoria, eventi di scrittura di file e così via. Puoi anche collegarti alle notifiche per il socket I / O e simili. Puoi fare tutto questo in circa 30 righe di codice.

Da lì, a seconda di quanto vuoi essere invasivo e completo, potresti fare una serie di cose. È possibile collegare le chiamate nei processi sconosciuti come la funzione send di Winsock e terminare la copia di tutti i dati che il processo scrive su un socket e controllarlo. Potresti cercare un'intestazione JPEG o PNG nei dati raschiati e attivare le campane di allarme se ne trovi una. È possibile aprire e analizzare i file scritti, ecc.

È a questo punto che le cose possono diventare complicate, ma probabilmente potresti agganciare la funzione send con una libreria come EasyHook con un centinaio di LOC.

Un altro approccio sarebbe dare un'occhiata a quali librerie / WinAPI funzionano per caricare una simile applicazione per eseguire questa funzione. È possibile rilevare quando inizia un processo e quando carica un assembly (.dll) con questi eventi del kernel, quindi è possibile cercare la combinazione giusta (o sbagliata) degli assembly caricati. È possibile collegare automaticamente le funzioni WinAPI o OpenGL o DirectX che forniscono funzionalità di acquisizione dello schermo in ogni processo che si avvia e monitorare direttamente quando le applicazioni accedono a tali funzionalità.

Per ulteriori informazioni su questo approccio generale, puoi vedere la mia altra risposta qui .

Vorrei chiarire che l'unica cosa che sto pubblicizzando è facile è il processo di agganciarsi direttamente nel cuore del sistema operativo e ricevere notifiche su ciò che accade. L'arte di utilizzare correttamente questi dati per catturare efficacemente il codice dannoso è un compito molto, molto più difficile.

    
risposta data 08.06.2016 - 14:10
fonte
-1

Puoi rilevarlo controllando lo spazio libero (molto facile) o la scrittura di file (non così facile). Gli screenshot devono essere archiviati da qualche parte in modo che i file si sovrappongano in una posizione non ovvia.

Questo è il metodo che ho usato e sono riuscito a localizzare ed eliminare un multi-logger usando semplicemente un file manager semplice.

    
risposta data 08.06.2016 - 10:25
fonte

Leggi altre domande sui tag