c++ - 防病毒软件如何能够以读取模式打开文件,即使它被共享拒绝读取和写入

标签 c++ windows file

让我详细解释一下: 在我的应用程序中,我使用 fopen()_SH_DENYRW(拒绝读/写模式),在此之后,反病毒软件可以使用 以读取模式打开文件>创建文件。因此,有时其他 Windows 函数(例如 SetEndOfFile)在我的应用程序中会失败。

最佳答案

因为 AV 软件 Hook 在官方操作系统(或 C 库)级别以下,因此忽略/绕过“您不应该打开此文件”限制。

但是,我认为这无关紧要,因为如果有一种简单的方法可以绕过它,AV 软件就会存在严重缺陷。

如果 AV 导致问题,您有以下三种选择:

  1. 停止使用该 AV 软件。
  2. 将其作为错误报告给 AV 软件,并希望他们修复它(很快就会修复)。
  3. 修复您的软件,使其正常工作 [无论涉及什么]。

您的决定当然会分别受到 AV 软件的安装次数和您的软件的安装次数的影响。

(上面没有提到的一个选项当然是联系 AV 软件公司,询问“我该如何解决这个问题”——我有点惊讶他们有影响诸如 SetEndOfFile 这样微不足道的事情的问题——它可能不是最常见的操作,但肯定不是只有 0.1% 的所有软件使用的操作之一,通过 AV 软件的测试可能“找不到”)

关于c++ - 防病毒软件如何能够以读取模式打开文件,即使它被共享拒绝读取和写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37268365/

相关文章:

c++ - 在 CPP 中交换 2 个号码

c++ - 程序在抛出异常时挂起

c# - 无法通过 HttpClient 或其他方式连接到 UWP 中的 127.0.0.1 (localhost) 设备门户(仅限 Windows 10 Mobile RS1)

c++ - 使用 sed 命令换行字符串

java - 如何安装 assets 文件夹大小 > 1GB 而 apk 最大大小 = 50 MB 的 android 应用程序?

c++ - 没有得到预期的输出

c++ - 多重赋值 (a = b) = c 语法如何工作?

.net - WPF 中的应用程序级快捷键

java - 从文件中读取数组。 (java)

c# - C#中System.IO.File.Copy和copy、xcopy、robocopy命令的一些问题