本工具仅用于教育目的。与本仓库中所含内容相关的任何行为和活动均完全由您自行负责。滥用本工具可能会导致相关人员面临刑事指控。如有任何个人因滥用所提供的工具违反法律而被提起刑事指控,作者概不承担任何责任。
一个概念验证工具,用于识别 Windows 系统中被豁免于 AV 实时扫描的文件夹。
该工具接收一个文件夹路径作为参数,并遍历其 Y 层深的子目录。Y 是用户提供的最大深度参数。该工具会在每个目录中创建 N 个 512 字节、内容随机的文件。N 是用户提供的样本大小。N 越大,精度越高,误报率越低。N 越大,创建的文件数量也越多,因此工具运行所需的时间越长。在我的测试中,五千似乎能在时间与准确性之间取得良好的平衡。随后,工具会记录在每个目录中创建文件所花费的平均时间。最后,工具会检查是否有任何目录的平均写入时间比全局平均值快至少 X%。X 称为灵敏度参数。根据我的测试,0.25(25%)在大多数情况下似乎都有效。
AV 解决方案会检查写入磁盘的大部分内容,并挂钩与文件写入相关的调用。当写入被排除在实时扫描之外的文件夹时,这一额外步骤会产生可测量到的时间差异。 下图描绘了工具初始测试期间在多个文件夹中写入一个文件所需的平均微秒数。图片中突出显示了两个被排除在实时扫描之外的文件夹。

执行模式 0(--mode 0)将尝试映射 Defender 排除列表中的文件夹。用户必须通过 --targets 参数提供要测试的文件夹列表。--sample-size 参数可用于调整在每个目录中创建的文件数量。
示例:
TimeException.exe --sample-size 1000 --mode 0 --targets dirs.txt
执行模式 1(--mode 1)将尝试映射 Defender 排除列表中的扩展名。用户必须通过 --targets 参数提供要测试的扩展名列表。目标文件中的扩展名必须采用 .ext 格式(例如 .png、.txt、.foobar 等)。--sample-size 参数可用于调整为每个扩展名创建的文件数量。
示例:
TimeException.exe --sample-size 1000 --mode 1 --targets exts.txt
执行模式 2(--mode 2)将尝试映射 Defender 排除列表中的进程。用户必须通过 --targets 参数提供要测试的进程名称列表。目标文件中的条目必须采用 program.exe 格式(例如 calc.exe、mspaint.exe 等)。进程执行模式需要提供一个基准程序(benchmarker)。基准程序是一个控制台应用程序,它接受 --sample-size 作为有效参数,并输出一个双精度浮点数。TimeException 本身就是一个基准程序。--sample-size 参数可用于调整基准程序为计算结果所执行的操作次数。
示例:
TimeException.exe --sample-size 1500 --ref 3.7225 --mode 2 --benchmarker .\TimeException.exe --targets procs.txt
执行模式 3(--mode 3)尚未实现。
执行模式 4(--mode 4)将测量向当前目录写入一个 512 字节文件所需的平均时间。--sample-size 参数可用于调整用于计算平均写入时间的文件数量。
基准模式是 TimeException 的默认运行模式。
示例:
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