首页 文章

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

提问于
浏览
37

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

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

那么,让's not be arrogant and check if I' m确实没有被感染 . 我将文件发布到http://www.virustotal.com,并且从所有反病毒中只有Avira将其标记为已感染 . 此外,我用两种不同的抗病毒扫描我的电脑,它很干净 .

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

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

6 回答

  • 3

    安德烈亚斯的答案非常好;它只是发生在Delphi应用程序上 .

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

    如果有任何技术可以避免误报,病毒作者将使用它们来避免检测 .

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

  • 4

    由于粗心的防病毒软件,许多诚实的开发人员都遇到了问题 . 另见:How to prevent false positive virus alarm on my software?

    想象一下,对于他们展示的每一个误报,你都会失去一个可能的客户 . 程序员应该对这些防病毒产品采取措施,并强迫他们对误报警告更加谨慎,甚至为我们因此而损失的销售收回一些收入 .

    更新:
    最近我发现:

    • 编译程序时,VirusTotal.com上的误报数量是'Release mode'(带编译器优化),然后在'Debug mode'中编译时 .

    • 使用EurekaLog时检测天空火箭 .

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

  • 22

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

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

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

  • 27

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

    在SO,我们也有

    还有很多 .

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

  • 3

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

    • 很多病毒都是用Delphi编写的,因此你的exe可能会有一些与现有病毒看起来相同的代码部分 .

    • 程序的导入表用于确定您的exe可能执行的操作,例如链接到凭据管理或磁盘管理功能会触发某些AV .

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

  • 3

    在Free Pascal / Lazarus组和bugtracker中,这些消息几乎每个发布和/或月份都会发生 .

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

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

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

    但是,没有别的办法 .

相关问题