
Ein Tool zum Auffinden von Ordnern, die mithilfe eines Zeit-Orakels vom Echtzeit-Scan der Antivirensoftware ausgeschlossen sind.
Dieses Tool dient ausschließlich Bildungszwecken. Alle Handlungen und Aktivitäten im Zusammenhang mit dem in diesem Repository enthaltenen Material liegen in Ihrer alleinigen Verantwortung. Die missbräuchliche Verwendung dieses Tools kann zu strafrechtlichen Anklagen gegen die betreffenden Personen führen. Der Autor übernimmt keine Verantwortung, wenn gegen Personen, die das bereitgestellte Tool missbrauchen, um gegen das Gesetz zu verstoßen, strafrechtliche Anklagen erhoben werden.
Ein Proof-of-Concept-Tool zur Identifizierung von Ordnern, die von der Echtzeit-Überprüfung durch Antivirensoftware in Windows-Systemen ausgenommen sind.
Das Tool empfängt einen Ordnerpfad als Argument und durchläuft dessen Unterverzeichnisse bis zu einer Tiefe von Y. Y ist ein vom Benutzer angegebenes Argument für die maximale Tiefe. Das Tool erstellt in jedem Verzeichnis N Dateien mit einer Länge von 512 Bytes und zufälligem Inhalt. N ist die vom Benutzer angegebene Stichprobengröße. Ein größeres N bietet mehr Präzision und verringert die Häufigkeit von Fehlalarmen. Je größer N, desto mehr Dateien werden erstellt. Folglich dauert die Ausführung des Tools umso länger. Fünftausend schienen in meinen Tests ein gutes Verhältnis von Zeit zu Genauigkeit zu bieten. Das Tool zeichnet anschließend die durchschnittliche Zeit auf, die zum Erstellen von Dateien in jedem der Verzeichnisse benötigt wurde. Schließlich prüft das Tool, ob eines der Verzeichnisse eine mittlere Schreibzeit aufweist, die mindestens X% schneller ist als der globale Durchschnitt. X wird als Empfindlichkeitsparameter bezeichnet. Basierend auf meinen Tests scheint 0,25 (25%) für die meisten Fälle zu funktionieren.
Antivirenlösungen überprüfen die meisten Inhalte, die auf die Festplatte geschrieben werden, und hooken die Aufrufe im Zusammenhang mit dem Schreiben von Dateien. Dieser zusätzliche Schritt kann einen messbaren Zeitunterschied beim Schreiben in einen Ordner erzeugen, der von der Echtzeit-Überprüfung ausgenommen ist. Die folgende Grafik zeigt die durchschnittliche Anzahl von Mikrosekunden, die beim Schreiben einer Datei in verschiedenen Ordnern während der ersten Tests des Tools benötigt wurde. Die beiden Ordner, die von der Echtzeit-Überprüfung ausgenommen sind, sind im Bild hervorgehoben.

Ausführungsmodus 0 (--mode 0) versucht, Ordner in der Ausschlussliste von Defender zu kartieren. Der Benutzer muss über das Argument --targets eine Liste der zu testenden Ordner bereitstellen. Das Argument --sample-size kann verwendet werden, um die Anzahl der in jedem Verzeichnis erstellten Dateien anzupassen.
Beispiel:
TimeException.exe --sample-size 1000 --mode 0 --targets dirs.txt
Ausführungsmodus 1 (--mode 1) versucht, Erweiterungen in der Ausschlussliste von Defender zu kartieren. Der Benutzer muss über das Argument --targets eine Liste der zu testenden Erweiterungen bereitstellen. Die Erweiterungen in der Zieldatei müssen das Format .ext haben (z. B. .png, .txt, .foobar usw.). Das Argument --sample-size kann verwendet werden, um die Anzahl der für jede Erweiterung erstellten Dateien anzupassen.
Beispiel:
TimeException.exe --sample-size 1000 --mode 1 --targets exts.txt
Ausführungsmodus 2 (--mode 2) versucht, Prozesse in der Ausschlussliste von Defender zu kartieren. Der Benutzer muss über das Argument --targets eine Liste der zu testenden Prozessnamen bereitstellen. Die Erweiterungen in der Zieldatei müssen das Format program.exe haben (z. B. calc.exe, mspaint.exe usw.). Der Prozess-Ausführungsmodus erfordert die Angabe eines Benchmarkers. Ein Benchmarker ist eine Konsolenanwendung, die --sample-size als gültiges Argument akzeptiert und eine Gleitkommazahl (double) ausgibt. TimeException selbst ist ein Benchmarker. Das Argument --sample-size kann verwendet werden, um die Anzahl der Operationen anzupassen, die der Benchmarker zur Berechnung seines Ergebnisses durchführt.
Beispiel:
TimeException.exe --sample-size 1500 --ref 3.7225 --mode 2 --benchmarker .\TimeException.exe --targets procs.txt
Ausführungsmodus 3 (--mode 3) ist noch nicht implementiert.
Ausführungsmodus 4 (--mode 4) misst die durchschnittliche Zeit, die benötigt wird, um eine 512-Byte-Datei in das aktuelle Verzeichnis zu schreiben. Das Argument --sample-size kann verwendet werden, um die Anzahl der Dateien anzupassen, die zur Berechnung der mittleren Schreibzeit verwendet werden.
Der Benchmark-Modus ist der Standard-Ausführungsmodus von TimeException.
Beispiel:
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