1

我遇到了一个非常奇怪的问题。我使用了一台安装了 Win 10 的笔记本电脑,并使用 Dev-C++ 从一个非常简单的 .c 文件编译了一个 .exe 文件。.exe 文件是在桌面上创建的,我可以运行 .exe 文件——只运行一次。运行 .exe 文件成功结束后,再次尝试运行 .exe 文件导致权限错误。我什至无法删除或移动 .exe 文件。然后我右键文件,发现我没有查看文件的权限!!单击“以管理员身份”按钮也不起作用。

我一开始以为是Dev-C++的问题,于是又安装了一个叫dm的编译器,结果还是一样——我用命令提示符编译了另一个.c程序,然后检查权限,没问题。然后我执行了一次,然后再次检查了权限。我什至不允许再次查看权限!

我尝试使用 Microsoft 帐户登录笔记本,也尝试使用具有管理员权限的本地帐户登录,都出现了与上述相同的症状。真正的问题是什么?Win 10 的更新中是否存在导致此问题的某些问题?因为这个问题在一个月前没有发生,并且Windows更新设置为自动。

4

1 回答 1

0

我们只是以艰难的方式发现了这一点。如果进行了相应配置,Microsoft Defender Exploit Guard 将在首次执行时悄悄控制 exe 文件。在 bash 语法中:

   rustc src/hello.rs -o hello.exe
   # Read
   sha256sum hello.exe
   # -> ec973eeb25bda853f7ae854272679f94135d578afa0758b93ce5a3e12d424edd *hello.exe
   # Try to execute
   ./hello.exe
   # -> ./hello.exe: Permission denied
   # Read again
   sha256sum hello.exe
   # -> ./hello.exe: Permission denied

在 MS 事件查看器中,展开应用程序和服务日志,然后是 Microsoft,然后是 Windows,然后是 Windows Defender。你会发现一条警告说 Microsoft Defender Exploit Guard 已阻止hello.exe,在这种情况下是在执行svchost.exe时。

缓解此问题可能会让您与公司的安全团队取得联系,玩得开心!

于 2021-12-21T16:23:05.977 回答