Dr.Semu 在隔离环境中运行可执行文件,监控进程行为,并根据你或社区创建的 Dr.Semu 规则检测该进程是否为恶意。

[该工具处于早期开发阶段]
借助 Dr.Semu,你可以根据进程的动态行为创建规则来检测恶意软件。
所有操作均在用户态完成。使用 Windows 投影文件系统 (ProjFS) 提供 虚拟 文件系统。对于注册表重定向,它会将所有注册表配置单元克隆到新位置,并重定向所有注册表访问。
有关其他重定向(进程/对象隔离等)的更多信息,请参阅源代码。
Dr.Semu 使用 DynamoRIO(动态 instrumentation 工具平台)在线程即将跨越用户-内核边界时进行拦截。其效果等同于挂钩 SSDT,但无需挂钩任何内容即可在用户态实现。
在此阶段,Dr.Semu 生成一个 JSON 文件,其中包含拦截到的信息。
进程终止后,根据 Dr.Semu 规则,得出该可执行文件是否被检测为恶意软件。
规则使用 Python 或 LUA 编写(位于 dr_rules 目录下),利用拦截到的动态信息以及样本的静态信息。添加对其他语言的支持非常简单。

示例(Python):https://gist.github.com/secrary/ac89321b8a7bde998a6e3139be49eb72
示例(Lua):https://gist.github.com/secrary/e16daf698d466136229dc417d7dbcfa3
PowerShell 在提权的 PowerShell 窗口中启用 ProjFS:Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
从 releases 页面 下载并解压 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 下构建 32 位库(\shared_libs\pe_parse\build\pe-parser-library\Release\),在 build64 下构建 64 位库多线程 (/MT)将 LauncherCLI 设置为启动项目
Windows 10,版本 1809(由于 Windows 投影文件系统)Windows 10,版本 1809(DynamoRIO 支持最高 Windows 10 版本 1809)