
このツールは教育目的のみで提供されています。このリポジトリに含まれる資料に関連する一切の行動および活動は、すべてあなた自身の責任となります。このツールを悪用すると、当該人物に対する刑事告訴につながる可能性があります。提供されたツールを悪用して法律を破った個人に対して刑事告訴が行われた場合、作者は責任を負いません。
Windows システムにおいて、AV のリアルタイムスキャンの対象から除外されているフォルダを特定するために作られた概念実証(Proof-of-Concept)ツールです。
このツールは、フォルダパスを引数として受け取り、その配下の Y 階層分の子ディレクトリを反復処理します。Y はユーザーが指定する最大深度の引数です。このツールは、各ディレクトリにランダムな内容の 512 バイトのファイルを N 個作成します。N はユーザーが指定するサンプルサイズです。N が大きいほど精度が高くなり、誤検知の発生率が低くなります。N が大きいほど作成されるファイル数が多くなるため、ツールの実行時間は長くなります。私のテストでは、5000 が時間と精度のバランスが良さそうでした。その後、ツールは各ディレクトリでのファイル作成にかかった平均時間を記録します。最後に、ツールはいずれかのディレクトリの平均書き込み時間が全体平均よりも少なくとも X% 速いかどうかを確認します。X は感度パラメータと呼ばれます。私のテストによると、0.25(25%)がほとんどのケースでうまく機能するようです。
AV ソリューションは、ディスクに書き込まれるコンテンツのほとんどを検査し、ファイル書き込みに関連する呼び出しをフックします。この追加の処理により、リアルタイムスキャンの対象から除外されたフォルダへの書き込み時に、測定可能な時間差が生じることがあります。 次のグラフは、ツールの初期テスト中にいくつかのフォルダでファイルの書き込みにかかった平均マイクロ秒数を示しています。リアルタイムスキャンの対象から除外された 2 つのフォルダが画像内で強調表示されています。

実行モード 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 など)である必要があります。プロセス実行モードでは、ベンチマーカーの指定が必要です。ベンチマーカーは、--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