
DrSemu - サンドボックス化された動的振る舞いに基づくマルウェア検出・分類ツール
Dr.Semu は、隔離された環境で実行ファイルを実行し、プロセスの動作を監視し、あなたやコミュニティが作成した Dr.Semu ルールに基づいて、そのプロセスが悪意があるかどうかを検出します。

[このツールは初期開発段階です]
Dr.Semu を使用すると、プロセスの動的な動作に基づいてマルウェアを検出するルールを作成できます。
すべてはユーザーモードで行われます。Windows Projected File System (ProjFS) を使用して、仮想ファイルシステムを提供します。レジストリのリダイレクトでは、すべてのレジストリハイブを新しい場所にクローンし、すべてのレジストリアクセスをリダイレクトします。
その他のリダイレクション(プロセス/オブジェクトの分離など)については、ソースコードを参照してください。
Dr.Semu は DynamoRIO(動的インストルメンテーションツールプラットフォーム)を使用して、スレッドがユーザーカーネルラインを越えようとするときにインターセプトします。これは SSDT をフックするのと同じ効果がありますが、ユーザーモードから何もフックせずに行います。
このフェーズでは、Dr.Semu はインターセプトからの情報を含む JSON ファイルを生成します。
プロセスを終了した後、Dr.Semu ルールに基づいて、実行ファイルがマルウェアとして検出されたかどうかを受け取ります。
これらは Python または LUA で記述され(dr_rules フォルダにあります)、インターセプトからの動的情報とサンプルに関する静的情報を使用します。他の言語のサポートを追加するのは簡単です。

Example (Python): https://gist.github.com/secrary/ac89321b8a7bde998a6e3139be49eb72
Example (Lua): https://gist.github.com/secrary/e16daf698d466136229dc417d7dbcfa3
PowerShell ウィンドウで PowerShell を使用して ProjFS を有効にします:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
リリースページ から zip ファイルをダウンロードして展開します。
DynamoRIO をダウンロードして DrSemu フォルダに展開し、dynamorio に名前を変更します。
Python 3 x64 をインストールします。
DrSemu.exe --target file_path
DrSemu.exe --target files_directory
PowerShell ウィンドウで PowerShell を使用して ProjFS を有効にします:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

Python 3 x64 をインストールします。
DynamoRIO をダウンロードして bin フォルダに展開し、dynamorio に名前を変更します。
pe-parser-library.lib ライブラリをビルドします:
DrSemu\shared_libs\pe_parse から VS プロジェクトを生成します。build 下(\shared_libs\pe_parse\build\pe-parser-library\Release\)に、64ビットライブラリを build64 下にビルドします。Multi-threaded (/MT) に変更します。LauncherCLI をスタートアッププロジェクトに設定します。
Windows 10 バージョン 1809(Windows Projected File System のため)Windows 10 バージョン 1809(DynamoRIO は Windows 10 のバージョン 1809 までをサポート)