我的可执行文件中的防病毒误报

时间:2010-07-26 21:28:19

标签: delphi delphi-7 executable antivirus false-positive

我遇到了一个恼人的问题。突然, Avira AntiVir 开始将我软件中的一个可执行文件标记为病毒。

由于几乎所有用户的默认操作都是单击“确定”,而Avira建议将病毒置于隔离区,因此我的大多数用户都在删除此可执行文件。

好吧,让我们不要傲慢,检查一下我是否确实没有受到感染。我将文件发布到http://www.virustotal.com,并且从所有反病毒中只有Avira将其标记为已感染。此外,我用两种不同的抗病毒扫描了我的电脑,它很干净。

我已经向我的用户发了一封邮件,说明发生了什么,但这是我支持的开销,我真的不想要。

好的,问题是:有没有办法避免这种行为?除了签署文件之外,我想不出任何其他方式,(不知道它是否会解决),但让我们看看你是否有任何创意。

6 个答案:

答案 0 :(得分:27)

令人惊讶的是,Delphi应用程序被AV应用程序报告为(可能)有害。它发生在我之前,使用Delphi 2009,请参阅http://en.wikipedia.org/wiki/Wikipedia:Reference_desk/Archives/Computing/2010_March_20#Delphi.2FAVG_Issue

在SO,我们也有

还有更多。

可能是实际的Induc Virus。但最有可能的是,这是一种误报。

答案 1 :(得分:22)

安德烈亚斯的回答非常好;它只是Delphi应用程序发生了很多。

签名代码没有任何区别 - 我已经让NOD32在签名的Delphi代码上抛出误报。

如果有任何技术可以避免误报,病毒作者将使用它们来避免被发现。

我发现不幸的是,最好的行动方式是反应性而非主动性。所有AV供应商都有报告误报的工具,我发现它们对报告做出了响应。

答案 2 :(得分:3)

作为解决方案,您可能希望:

1 - 验证您的Delphi编译器未受感染 2 - 验证您的来源和库未经过调整(即Induc Virus的M.O.) 3 - 使用AV检查您的(保证)清洁exe。如果他们报告误报,请与他们联系,以便他们可以修复他们的测试。

4 - 如果您需要在有机会更正AV之前进行分发,请签署您的exe,以便您的用户可以验证它是否干净。

答案 3 :(得分:3)

反病毒产品可能触发Delphi生成的exe有几个原因,一些常见的原因是:

  • 许多病毒是用Delphi编写的,因此你的exe可能会有一些与现有病毒看起来相同的代码部分。
  • 您的程序的导入表用于确定您的可能执行的操作,例如链接到凭据管理或磁盘管理功能会触发某些AV。

如前所述,尝试使用VirustotalJotti等在线服务扫描您的发布版本,并始终向供应商报告您的误报,而不是试图防止误报。我的经验是AV供应商在提交时反应非常快。

答案 4 :(得分:3)

在Free Pascal / Lazarus小组和bugtracker中,此类消息几乎每个发布和/或月份都会发生。

我们通常建议用户忽略所有“通用”或“启发式”扫描类型,并坚持基于签名的扫描(正如大多数公司的病毒扫描程序所做的那样)。

这是因为它几乎总是一种启发式警报,而不是特定的恶意软件。这可以很容易地看出,检测到的“病毒/木马”几乎总是“通用”类型。通常,virusscanners也是典型的“家庭”病毒扫描仪,或普通病毒扫描仪的家庭版(诺顿曾经特别糟糕,现在它主要是规模较小的“廉价”家用扫描仪)

但是,我们主要与开发人员进行沟通,并且已经无法收到此消息。我可以想象,当分发给无能的最终用户时,这是一个真正难以沟通的消息。

但是,没有其他办法。

答案 5 :(得分:3)

许多诚实的开发人员因粗心的防病毒软件而出现问题。 另请参阅:How to prevent false positive virus alarm on my software?

想象一下,对于他们表现出的每一个误报,你都会失去一个可能的客户。程序员应take action对抗此类防病毒产品,并强迫他们对误报警告更加谨慎,甚至为我们因此而失去的销售收入。

更新:
最近我发现了:

  • 当编译程序是'发布模式'(带编译器优化)然后在'调试模式'下编译时,VirusTotal.com上的误报数量要高得多。
  • 使用EurekaLog时检测天空火箭。

因此,在发布程序之前,请先提交VirusTotal!

相关问题