当前位置:  开发笔记 > 编程语言 > 正文

Delphi程序被防病毒程序阻止

如何解决《Delphi程序被防病毒程序阻止》经验,为你挑选了1个好方法。

我有一段代码试图在一秒钟内写入磁盘许多文件.但是,我已经安装了Kaspersky Anrivirus 2011.

Stream:= TFileStream.Create(sName, fmCreate); 

该代码完全适用于卡巴斯基2010,如果我禁用其扫描仪(它不能完全从内存中卸载 - 除非它已卸载),它也适用于卡巴斯基2011.如果(Kaspersky 2011正在运行并且我懒散地写入磁盘),代码也可以工作.所以它显然不够快,无法处理我的磁盘请求.

我得到的错误是EFCreateError('无法创建xxx文件blablabla').错误是随机的.大多数文件都写入磁盘.大约10%的失败.

我曾试图获得支持但却无法在卡巴斯基找到真正的人与之交谈.他们所谓的"支持"实际上是一个FAQ数据库.当然,它讲的是如何安装产品和相关的东西.关于编程相关问题没有任何内容.有任何想法吗?

PS:这对整个Delphi社区都有影响!如果他们使用KIS 2011作为防病毒软件,我们所有客户都将无法使用Delphi软件.目前我建议我的用户禁用他们的防病毒软件,但我需要一个真正的解决方案.

如果有KIS 2011的人可以确认问题,那就太好了.只需创建一个小程序,使用TFileStream将200个小文件写入磁盘.

更新:

仅当文件不存在且创建(创建而不是覆盖)时才会出现此问题.

类似报道:https://forums.embarcadero.com/thread.jspa?threadID = 32751&tstart = 15

类似的报道:http://forum.kaspersky.com/index.php?showtopic = 120561

我想到的一个可能的解决方案是检测KIS是否正在运行,如果是,则在每次写入磁盘后都要延迟.或者在leat,让用户知道可能存在问题.谁知道如何检测服务是否正在运行?

我添加了650毫秒的延迟(每个文件创建后),但仍然存在错误).所以不是关于你写入磁盘的速度有多快,而是你写的文件数量.

刚卸载的KIS 2011.问题不再出现了.

刚重新安装好的旧KIS 2010.该错误仍然存​​在但很少出现(大约每300个文件,而不是KIS 2011中的大约30个).

问题在第二台计算机上得到证实.

新闻:崩溃出现在TFileStream.Create中,但它可能是由之前调用的函数引起的:TestWriteAccess.如果我禁用此功能,TFileStream.Create不会再失败.嗯,这不会改变太多事情.无论哪一行代码生成错误,程序仍然会(随机)在Kaspersky运行时将文件写入磁盘.

还在等待卡巴斯基真人的回复......

从卡巴斯基支持收到更多自动回复(我在几个国家/地区发送了电子邮件支持).所有指向FAQ数据库.

我将我的状态从卡巴斯基的粉丝(和顾客)改为卡巴斯基的仇恨,因为我终于收到了来自卡巴斯基支持的真人的答案,这简直令人讨厌.

要测试代码,请尝试在循环中使用代码来创建1000个文件.该程序创建了一堆文件(随机数),然后在StreamFile:= TFileStream.Create失败.更新:可以通过在创建每个文件后输入一个小延迟来解决此问题.
https://docs.google.com/forms/d/1H3_O1z1iEqfh9ZT9u3B0R1tGEj-Hc9o7rAE0LKPr33Y

2013年更新

从今天下午开始(更新后)KIS与Delphi发生冲突.每次编译项目时,KIS都会达到100%的CPU利用率.我将不得不卸载它.

2017年更新

从2017年开始,我所有的Delphi程序都会神奇地消失所有误报警.似乎卡巴斯基这样的程序从其病毒列表中删除了Delphi生成的可执行文件就足够了; 所有其他较小的防病毒程序紧随其后.


Delphi 7,Win 7(32),KIS 2011



1> Chris Thornt..:

您需要告诉您的用户,即卡巴斯基的客户,卡巴斯基正在干扰您的软件操作,并且他们应该报告它.表达您的挫败感,作为开发人员,您无法访问真正的人类.这是反恶意软件公司反应的唯一方式 - 与付费客户的公关差.


@Andrey,我不同意.AV供应商应该分担他们粗心大意带来的一些痛苦.
@Andrey - "误报(你的情况)" - 不,这不是误报,因为KIS没有显示任何警告/信息.如果我的"错误"代码不在TRY EXCEPT子句中,它只会崩溃程序.因此,我开始怀疑:有多少其他程序显示我的错误实际上是错误的,有多少是可以的,但卡巴斯基让他们表现得很糟糕.没有腐败者(一个让其他程序出错的程序),我的电脑会更好.其他用户也可以从更少的防病毒软件中受益(没有迹象表明KIS提供的安全性可以弥补其错误).
这有点不适合现实生活.当你说防病毒工作不正常时,当防病毒软件表示它是可疑的时,防病毒的反PR不仅仅是反PR的防PR.您(开发人员)应该联系AV供应商,他们支持此类案例.当然他们不会为你改变AV,但他们可能会给你如何防止报警的有用说明.
@Chris,你可以不同意你所喜欢的,但是如果你的软件没有做它应该做的或被报告为病毒,那么客户会认为你的软件是坏的.这就是现实.
@Andrey:他到底有什么安全感?实际上,他正在获得消极安全 - 他认为他受到了保护,所以他会稍微放松一下.(另外,我想我听说Karspersky对这种事情特别不好.)
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有