Windows実行ファイルにおけるDLLハイジャックの機会を見つけるための無料のオープンソースツール。サードパーティ依存関係はありません。
Windowsは、DLLを固定された一連のディレクトリを順に検索して読み込みます。まず実行ファイル自身のディレクトリ、次にSystem32、Windows、PATHエントリです。DLLがシステムディレクトリに見つからない場合、そのチェーンのより前のディレクトリに書き込み可能な攻撃者は、悪意のあるコピーを配置し、代わりに読み込ませることができます。
Robberはディレクトリツリーを走査し、各実行ファイルのインポートテーブルを実際のディスク上の内容と照合し、どのファイルが調査に値するか、その理由を教えてくれます。

ディレクトリを指定して Scan をクリックします。結果は見つかり次第ツリーに表示されます。任意の実行ファイルを展開すると、どのDLLがハイジャック可能か、それらがエクスポートするメソッド、各ディレクトリの書き込み可否フラグ付きの完全な検索順序を確認できます。
Color Config パネルでは、Best/Good/Bad評価の閾値を制御します:
フィルタを使用して、アーキテクチャ、署名状態、重大度、実行ファイルのディレクトリが実際に書き込み可能かどうかで結果を絞り込みます。完了したら Export をクリックしてJSONまたはCSVとして保存します。
設定と最後のスキャンパスはセッション間で記憶されます。
Robber.exe --path <dir> [options]
--path <dir> Directory to scan (required)
--output <file> Write to file (.json or .csv). Default: stdout
--image-type any|x86|x64
--sign any|signed
--rate any|best|good|bad
--write-perm Only show results in writable directories
--best-dll-count <n> (default: 2)
--best-exe-size <n> KB threshold (default: 10240)
--good-dll-count <n> (default: 5)
--good-exe-size <n> KB threshold (default: 51200)
--help
進捗はstderrに、結果はstdoutに出力されます — パイプ処理に対応。
Robber.exe --path "C:\Program Files" --rate best --output hits.json
Robber.exe --path "C:\Program Files" | jq '.[].exePath'
Robber.exe --path "C:\Tools" --sign signed --write-perm
msvcr120.dll のような再頒布可能ランタイムによる誤検出はありませんrequireAdministrator / highestAvailable)はフラグ付けされます — 昇格されたプロセスでのハイジャックは、単なるコード実行ではなく特権昇格ですDelphi XE2以降。Robber\Robber.dproj を開いてビルド。他に必要なものはありません。