Detectar cuándo se realiza una captura de pantalla con un software (spyware) en Windows [cerrado]

2

La mayoría de las herramientas de troyanos, spyware y keylogger tienen la capacidad de tomar capturas de pantalla. ¿Hay alguna forma de detectar si una aplicación o software está tomando una captura de pantalla en Windows? Tal vez una llamada a la API de Windows o DLL?

Esto sería útil para encontrar malware.

    
pregunta Anders 08.06.2016 - 09:50
fuente

2 respuestas

1

Mi respuesta requeriría escribir algún código. Solo publico esta respuesta porque mencionaste una solución relacionada con la programación en tu pregunta.

Desde Windows Vista, el kernel de Windows genera un evento para básicamente todo lo que sucede en su computadora. Microsoft proporciona una biblioteca llamada TraceEvent para .NET que hace que sea absolutamente trivial engancharse a estos eventos.

Para detectar una captura de pantalla, puede monitorear eventos de escritura de memoria, eventos de escritura de archivos, etc. También puede enlazar notificaciones para socket IO y similares. Puedes hacer todo esto en alrededor de 30 líneas de código.

A partir de ahí, dependiendo de cuán invasivo y completo quieras ser, podrías hacer varias cosas. Puede conectar llamadas en los procesos desconocidos, como la función send de Winsock, y terminar raspando una copia de todos los datos que el proceso escribe en un socket, y verificarlo. Puede buscar un encabezado JPEG o PNG en datos raspados y disparar las alarmas si encuentra uno. Podría abrir y analizar los archivos que escribe, etc.

Es en este punto que las cosas se pueden complicar, pero probablemente puedas enganchar la función send con una biblioteca como EasyHook con alrededor de cien LOC.

Otro enfoque sería observar qué bibliotecas / funciones de WinAPI tal aplicación tendría que cargar para realizar esta función. Puede detectar cuándo se inicia un proceso y cuándo carga un ensamblaje (.dll) con estos eventos del kernel, por lo que podría buscar la combinación correcta (o incorrecta) de ensamblados cargados. Puede conectar automáticamente las funciones WinAPI, OpenGL o DirectX que proporcionan la capacidad de captura de pantalla en cada proceso que se inicia, y monitorear directamente cuando las aplicaciones acceden a estas capacidades.

Para obtener más información sobre este enfoque general, puede ver mi otra respuesta aquí .

Me gustaría dejar claro que lo único que me parece fácil es el proceso de conectar directamente al corazón del sistema operativo y recibir notificaciones sobre las cosas que están sucediendo. El arte de usar correctamente estos datos para capturar efectivamente el código malicioso es una tarea mucho más difícil.

    
respondido por el user7933 08.06.2016 - 14:10
fuente
-1

Puede detectarlo al monitorear el espacio libre (muy fácil) o las escrituras de archivos (no tan fácil). Las capturas de pantalla deben almacenarse en algún lugar para que los archivos tengan que apilarse en una ubicación no tan obvia.

Este es el método que utilicé, y logré localizar y eliminar un registrador múltiple con solo usar un simple administrador de archivos.

    
respondido por el Overmind 08.06.2016 - 10:25
fuente

Lea otras preguntas en las etiquetas