绕过Windows Defender启用的文件夹访问控制的限制

时间:2019-01-04 13:43:14

标签: c# security delphi windows-defender controlled-folder-access

我有一个用C#编写的应用程序,它是通过InnoSetup安装的。

启用Windows 10 Defender的受控文件夹访问后,即使以管理权限运行,安装程序也无法创建桌面图标(显示消息PersistFile::Save failed, code 0x80070002)。

此外,已安装的应用程序(未以管理权限运行)无法写入用户的文件夹,例如文档

即使对于新文件或文件夹,也不会覆盖现有文件,这也会发生。对于勒索软件保护,我希望仅修改现有文件被认为是危险的。

我想到的第一个问题是:为什么我的应用程序被认为是有害的,因此被阻止了?

我已经进行了广泛的研究以获得答案,但是找不到任何有帮助的东西:

  1. Mircosoft的Web资源描述了哪些应用程序被认为是有害的以及为什么找不到它-只能在那儿猜测。

  2. 使用扩展验证证书(有助于抑制SmartScreen警告)对我的应用程序签名不会改变Windows Defender的行为。

  3. 我让Windows App认证工具包分析安装程序-报告了一些警告和一个严重错误。我修复了该工具包抱怨的所有问题(关于/ SAFESEH的警告除外,这在InnoSetup中是不可能的),但这并没有改变Windows Defender关于访问阻止的行为。

因此,我要提炼的问题是:如何有效地绕过Windows Defender的设置和应用程序访问阻止?

为了深入了解问题并为实验提供基础,我在C#中设置了一个小型示例应用程序,

  1. 在公用桌面路径,用户的桌面路径,公共文档路径和用户的文档路径中创建新目录(然后删除)。
  2. 通过InnoSetup脚本捆绑到已签名的安装程序中

使用Visual Studio构建解决方案,并使用InnoSetup打包构建,使用启用受控文件夹访问的行为应该很容易。 (确保查看README.md以获得对构建步骤的描述!)

请签出sample project

0 个答案:

没有答案