概要
Detect It Easyは、実行ファイルやライブラリーなどのバイナリファイルを対象に、ファイル形式などの情報を自動判別するツールです。マルウェアやその関連ファイルの初動調査において、ファイルの性質を迅速に把握するために広く利用されています。
Detect It Easyは利用時の制約が少ないMITライセンスのもとで公開されています。
本記事では、執筆時点での最新バージョンであるv3.21(Windows 64ビット向け)について、GUI版およびCLI版の利用例をそれぞれ紹介します。 なお、パッカー・クリプター判定用途での利用方法については、別の記事をご参照ください。
利用例(GUI)
GUI版では解析結果や構造情報を視覚的に確認できるため、初動分析に適しています。
die.exeを実行し、スキャン対象のファイルをドラッグ&ドロップすると以下の画面が表示されます。今回の例ではUPXでパックした非悪性の実行ファイルをスキャンしています。
画面右の拡張チェックボックスを有効化すると、以下の画面が表示されます。画面中央にはメモリ マップや逆アセンブルなどのボタンが配置されており、これらをクリックすることで詳細情報を確認できます。
ファイルの初動解析において参照頻度の高い画面をいくつかご紹介します。
[構造を可視化]画面では、スキャン対象ファイルのバイト列を色分けして可視化します。ヘッダー、実行コード、文字列、リソースなどの割合を視覚的に確認することができます。例えば、部分暗号化型ランサムウェアによって暗号化されたファイルについて、暗号化範囲を推定する際の補助情報として利用できます。
[ハッシュ]画面では、スキャン対象ファイル全体のハッシュ値やセクションごとのハッシュ値をそれぞれ確認することができます。
[文字列]画面では実行ファイル内に含まれる文字列の一覧が表示されます。ハードコーディングされているファイル名、レジストリ、通信先などを確認することができます。
利用例(CLI)
CLI版は大量のファイルを一括で解析したり、解析結果を各種フォーマットで出力してほかのプログラムと連携したりする用途に適しています。
コマンドプロンプトやPowerShellから以下の構文でdiec.exeを実行します。
diec.exe [オプション] 対象ファイル
v3.21では、以下のオプションを利用することができます。
diec.exeのオプション一覧
| オプション | 内容 |
|---|---|
| -?, -h, --help | コマンドラインオプションのヘルプを表示 |
| --help-all | Qt固有のオプションを含むすべてのヘルプを表示 |
| -v, --version | バージョン情報を表示 |
| -r, --recursivescan | ディレクトリを再帰的にスキャン |
| -d, --deepscan | 詳細な解析のためにディープスキャンを有効化 |
| -u, --heuristicscan | ヒューリスティック解析を有効化(※1) |
| -b, --verbose | 詳細な出力を表示 |
| -g, --aggressivescan | 詳細なスキャンモードを有効化 |
| -a, --alltypes | すべてのファイルタイプをスキャン |
| -f, --format | 出力結果のフォーマットを指定 |
| -l, --profiling | スキャン中にシグネチャのプロファイリングを実施 |
| -M, --messages | スキャンメッセージおよび警告を表示 |
| -U, --hideunknown | 結果から不明なファイルタイプを非表示 |
| -e, --entropy | ファイルのエントロピー情報を表示 |
| -i, --info | ファイル情報を表示 |
| -S, --struct <struct> | 指定した構造(例:Hash、Hash#MD5)を用いて特定の情報を表示 |
| -x, --xml | 結果をXML形式で出力 |
| -j, --json | 結果をJSON形式で出力 |
| -c, --csv | 結果をCSV形式で出力 |
| -t, --tsv | 結果をTSV形式で出力 |
| -p, --plaintext | 結果をプレーンテキスト形式で出力 |
| -D, --database <path> | データベースのパスを指定(※2) |
| -E, --extradatabase <path> | 追加データベースのパスを指定 |
| -C, --customdatabase <path> | カスタムデータベースのパスを指定 |
| -s, --showdatabase | データベース情報を表示 |
| -w, --showstructs | ファイルタイプ判定用の特別な構造一覧を表示 |
| --test <directory> | 指定ディレクトリ内のシグネチャをテスト |
| --addtest <filename> | ファイル名・検出文字列・ディレクトリを用いてテストケースを追加 |
※1 通常のシグネチャベースの検出ルールを補完するため、ファイル構造や特徴的なパターンを追加的に解析する機能を有効化します。難読化されたコードや未知のパッカーの検出に役立つ場合があります。
※2 開発ツール、パッカー、コンパイラなどを識別するための検出データベースについて、デフォルトではなく任意のパスを使用するための設定です。
オプションを指定せずに実行した場合、対象ファイルの種類や検出されたパッカー、コンパイラなどの基本的な判定結果が標準出力に表示されます。
マルウェアの表層解析において利用頻度の高いオプションをいくつかご紹介します。
--infoオプションを指定すると、ファイルサイズ、ファイル形式、アーキテクチャなど、解析対象ファイルの詳細な属性情報が表示されます。
--S Hashオプションを指定すると、対象ファイルのMD5やSHA-256などのハッシュ値を表示できます。
以上のように、Detect It Easyを使用することでマルウェアや不審ファイルの初動調査を行うことができます。







