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.