让我详细解释一下:
在我的应用程序中,我使用 fopen()
和 _SH_DENYRW
(拒绝读/写模式),在此之后,反病毒软件可以使用 以读取模式打开文件>创建文件
。因此,有时其他 Windows 函数(例如 SetEndOfFile
)在我的应用程序中会失败。
最佳答案
因为 AV 软件 Hook 在官方操作系统(或 C 库)级别以下,因此忽略/绕过“您不应该打开此文件”限制。
但是,我认为这无关紧要,因为如果有一种简单的方法可以绕过它,AV 软件就会存在严重缺陷。
如果 AV 导致问题,您有以下三种选择:
- 停止使用该 AV 软件。
- 将其作为错误报告给 AV 软件,并希望他们修复它(很快就会修复)。
- 修复您的软件,使其正常工作 [无论涉及什么]。
您的决定当然会分别受到 AV 软件的安装次数和您的软件的安装次数的影响。
(上面没有提到的一个选项当然是联系 AV 软件公司,询问“我该如何解决这个问题”——我有点惊讶他们有影响诸如 SetEndOfFile
这样微不足道的事情的问题——它可能不是最常见的操作,但肯定不是只有 0.1% 的所有软件使用的操作之一,通过 AV 软件的测试可能“找不到”)
关于c++ - 防病毒软件如何能够以读取模式打开文件,即使它被共享拒绝读取和写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37268365/