如何使用 EMET 保护 Flash?

Ind*_*rek 2 windows security flash

我使用EMET来保护我计算机上的许多应用程序 - Web 浏览器、Office 套件应用程序、PDF 阅读器以及 Adob​​e Flash。总的来说,它运行良好,除了 Flash 可执行文件在文件名中包含版本号,因此每次更新时,文件名都会更改,我必须记住手动将它们重新添加到 EMET。

有没有办法简化这个过程?EMET 确实支持通配符,但仅限于路径本身,而不是文件名,因此类似的东西%windir%\system32\Macromed\Flash\*.exe不起作用。

有没有其他方法可以将整个文件夹添加到 EMET,以便自动保护该文件夹中的任何新可执行文件?

Ind*_*rek 5

EMET 包括一个命令行工具,EMET_Conf.exe. 这可用于配置 EMET 中的几乎任何设置,包括添加和删除应用程序。

以下代码应将所有与 Flash 相关的可执行文件添加到 EMET:

cd %windir%\system32\Macromed\Flash
for %f in (*.exe) do EMET_Conf --set %f

cd %windir%\SysWOW64\Macromed\Flash
for %f in (*.exe) do EMET_Conf --set %f
Run Code Online (Sandbox Code Playgroud)

(最后两行仅在 64 位 Windows 上需要。有关详细信息,请参阅安装目录中的 EMET 用户指南。)

这必须从提升的命令提示符运行,并假设您的PATH环境变量包含安装 EMET 的位置。如果没有,并且您不能或不想添加它,请将EMET_Conf上面的代码替换为完整路径,例如:

for %f in (*.exe) do "C:\Program Files (x86)\EMET\EMET_Conf.exe" --set %f
Run Code Online (Sandbox Code Playgroud)

上面的代码可以保存在一个 .bat 文件中,然后配置为作为计划任务运行。选择您想要的任何时间表(每天一次似乎是一个不错的选择,因为这是检查 Flash 更新的频率),并确保选中“以最高权限运行”选项,因为 EMET 需要管理员权限。

这种方法的唯一缺点是旧条目不会被清除,因此一段时间后,您的 EMET 配置中最终会出现许多不存在的可执行文件,必须手动清除它们。但是,通过一些调整,可以修改代码以记录它添加到文本文件中的每个可执行文件,然后在下一次运行时调用EMET_Conf --delete每个文件,然后添加新文件:

for /F "tokens=1" %%f in (log.txt) do EMET_Conf --delete %%f
type nul > log.txt
for %%f in (%windir%\system32\Macromed\Flash\*.exe) do EMET_Conf --set %%f && echo %%f >> log.txt
for %%f in (%windir%\SysWOW64\Macromed\Flash\*.exe) do EMET_Conf --set %%f && echo %%f >> log.txt
Run Code Online (Sandbox Code Playgroud)