
Una herramienta para encontrar carpetas excluidas del escaneo en tiempo real del antivirus mediante un oráculo de tiempo.
Esta herramienta se proporciona únicamente con fines educativos. Cualquier acción y actividad relacionada con el material contenido en este repositorio es responsabilidad exclusiva tuya. El uso indebido de esta herramienta puede dar lugar a cargos penales contra las personas en cuestión. El autor no será considerado responsable si se presentan cargos penales contra cualquier persona que haga un uso indebido de la herramienta proporcionada para infringir la ley.
Una herramienta de prueba de concepto creada para identificar carpetas que están exentas del escaneo en tiempo real del antivirus en sistemas Windows.
La herramienta recibe una ruta de carpeta como argumento e itera a través de sus subdirectorios con una profundidad de Y. Y es un argumento de profundidad máxima proporcionado por el usuario. La herramienta crea N archivos de 512 bytes con contenido aleatorio en cada directorio. N es el tamaño de muestra proporcionado por el usuario. Un N mayor ofrece más precisión y reduce la incidencia de falsos positivos. Cuanto mayor sea N, mayor será el número de archivos creados. Por lo tanto, más tiempo tardará la herramienta en ejecutarse. Cinco mil parecía proporcionar una buena relación tiempo x precisión durante mis pruebas. La herramienta registrará entonces el tiempo medio que tardó en crear archivos en cada uno de los directorios. Por último, la herramienta comprueba si alguno de los directorios tiene un tiempo medio de escritura que sea al menos un X% más rápido que la media global. X se denomina parámetro de sensibilidad. Según mis pruebas, 0,25 (25%) parece funcionar en la mayoría de los casos.
Las soluciones antivirus comprueban la mayor parte del contenido escrito en el disco e interceptan las llamadas relacionadas con la escritura de archivos. Este paso adicional puede producir una diferencia de tiempo medible al escribir en una carpeta que está excluida del escaneo en tiempo real. El siguiente gráfico muestra el número medio de microsegundos necesarios para escribir un archivo en varias carpetas durante las pruebas iniciales de la herramienta. Las dos carpetas excluidas del escaneo en tiempo real están resaltadas en la imagen.

El modo de ejecución 0 (--mode 0) intentará mapear carpetas en la lista de exclusiones de Defender. El usuario debe proporcionar una lista de carpetas a probar mediante el argumento --targets. El argumento --sample-size se puede usar para ajustar el número de archivos creados en cada directorio.
Ejemplo:
TimeException.exe --sample-size 1000 --mode 0 --targets dirs.txt
El modo de ejecución 1 (--mode 1) intentará mapear extensiones en la lista de exclusiones de Defender. El usuario debe proporcionar una lista de extensiones a probar mediante el argumento --targets. Las extensiones en el archivo de objetivos deben tener el formato .ext (p. ej., .png, .txt, .foobar, etc.). El argumento --sample-size se puede usar para ajustar el número de archivos creados para cada extensión.
Ejemplo:
TimeException.exe --sample-size 1000 --mode 1 --targets exts.txt
El modo de ejecución 2 (--mode 2) intentará mapear procesos en la lista de exclusiones de Defender. El usuario debe proporcionar una lista de nombres de procesos a probar mediante el argumento --targets. Las extensiones en el archivo de objetivos deben tener el formato program.exe (p. ej., calc.exe, mspaint.exe, etc.). El modo de ejecución de procesos requiere que se proporcione un benchmarker. Un benchmarker es una aplicación de consola que acepta --sample-size como argumento válido y genera un número de punto flotante doble. TimeException en sí mismo es un benchmarker. El argumento --sample-size se puede usar para ajustar el número de operaciones realizadas por el benchmarker para calcular su resultado.
Ejemplo:
TimeException.exe --sample-size 1500 --ref 3.7225 --mode 2 --benchmarker .\TimeException.exe --targets procs.txt
El modo de ejecución 3 (--mode 3) aún no está implementado.
El modo de ejecución 4 (--mode 4) medirá el tiempo medio que se tarda en escribir un archivo de 512 bytes en el directorio actual. El argumento --sample-size se puede usar para ajustar el número de archivos utilizados para calcular el tiempo medio de escritura.
El modo benchmark es el modo de funcionamiento predeterminado de TimeException.
Ejemplo:
TimeException.exe --mode 4 --sample-size 5000
Usage:
TimeException.exe [options]
Options:
Usage:
-h|--help Print usage instructions
--mode Exceptions to look folder. 0=Folder, 1=Extensions, 2=Process, 3=file, 4=benchmark (Default=4)
--ref Reference time value. Default=global average
--sample-size Sample size to use. Default=500
--sensitivity Sensitivity value. Default=0.25
--benchmarker Fully qualified path to a benchmarker executable
--verbose Increase verbosity
--targets File containing folder paths, extensions, or process names depending on the mode selected