
Uno strumento per trovare le cartelle escluse dalla scansione in tempo reale dell'antivirus utilizzando un oracolo temporale.
Questo strumento è fornito esclusivamente a scopo educativo. Qualsiasi azione e attività legata al materiale contenuto in questo repository è di tua esclusiva responsabilità. Un uso improprio di questo strumento può comportare accuse penali a carico delle persone coinvolte. L'autore non sarà ritenuto responsabile se verranno mosse accuse penali contro individui che utilizzeranno lo strumento fornito per infrangere la legge.
Uno strumento proof-of-concept progettato per identificare le cartelle escluse dalla scansione in tempo reale dell'antivirus nei sistemi Windows.
Lo strumento riceve un percorso di cartella come argomento e scorre le sue sottodirectory fino a una profondità Y. Y è un parametro di profondità massima fornito dall'utente. Lo strumento crea N file da 512 byte con contenuto casuale in ciascuna directory. N è la dimensione del campione fornita dall'utente. Un N più grande offre maggiore precisione e riduce l'incidenza dei falsi positivi. Più grande è N, maggiore è il numero di file creati. Di conseguenza, più tempo impiegherà lo strumento per l'esecuzione. Durante i miei test, cinquemila è sembrato fornire un buon rapporto tempo/precisione. Lo strumento registrerà quindi il tempo medio impiegato per creare i file in ciascuna delle directory. Infine, lo strumento verifica se una qualsiasi delle directory ha un tempo medio di scrittura che è almeno X% più rapido rispetto alla media globale. X è chiamato parametro di sensibilità. In base ai miei test, 0,25 (25%) sembra funzionare nella maggior parte dei casi.
Le soluzioni antivirus controllano la maggior parte dei contenuti scritti su disco e intercettano le chiamate relative alla scrittura dei file. Questo passaggio aggiuntivo può produrre una differenza di tempo misurabile quando si scrive in una cartella esclusa dalla scansione in tempo reale. Il seguente grafico mostra il numero medio di microsecondi impiegato per scrivere un file in diverse cartelle durante i test iniziali dello strumento. Le due cartelle escluse dalla scansione in tempo reale sono evidenziate nell'immagine.

La modalità di esecuzione 0 (--mode 0) tenta di mappare le cartelle nell'elenco di esclusioni di Defender. L'utente deve fornire un elenco di cartelle da testare tramite l'argomento --targets. L'argomento --sample-size può essere utilizzato per regolare il numero di file creati in ciascuna directory.
Esempio:
TimeException.exe --sample-size 1000 --mode 0 --targets dirs.txt
La modalità di esecuzione 1 (--mode 1) tenta di mappare le estensioni nell'elenco di esclusioni di Defender. L'utente deve fornire un elenco di estensioni da testare tramite l'argomento --targets. Le estensioni nel file dei target devono avere il formato .ext (ad es. .png, .txt, .foobar, ecc.). L'argomento --sample-size può essere utilizzato per regolare il numero di file creati per ciascuna estensione.
Esempio:
TimeException.exe --sample-size 1000 --mode 1 --targets exts.txt
La modalità di esecuzione 2 (--mode 2) tenta di mappare i processi nell'elenco di esclusioni di Defender. L'utente deve fornire un elenco di nomi di processi da testare tramite l'argomento --targets. Le estensioni nel file dei target devono avere il formato program.exe (ad es. calc.exe, mspaint.exe, ecc.). La modalità di esecuzione per processi richiede la presenza di un benchmarker. Un benchmarker è un'applicazione console che accetta --sample-size come argomento valido e restituisce un numero in virgola mobile a doppia precisione. TimeException stesso è un benchmarker. L'argomento --sample-size può essere utilizzato per regolare il numero di operazioni eseguite dal benchmarker per calcolare il suo risultato.
Esempio:
TimeException.exe --sample-size 1500 --ref 3.7225 --mode 2 --benchmarker .\TimeException.exe --targets procs.txt
La modalità di esecuzione 3 (--mode 3) non è ancora implementata.
La modalità di esecuzione 4 (--mode 4) misura il tempo medio necessario per scrivere un file di 512 byte nella directory corrente. L'argomento --sample-size può essere utilizzato per regolare il numero di file usati per calcolare il tempo medio di scrittura.
La modalità benchmark è la modalità operativa predefinita di TimeException.
Esempio:
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