15

可能重复:
我的可执行文件中的防病毒误报

到目前为止,我的程序收到了超过 15 个虚假病毒警报。其中大多数来自卡巴斯基,它总是报告相同的病毒:Trojan-GameThief.Win32.Lmir.pcd。有3个问题:

  1. 为什么会出现?
  2. 如何预防?
  3. 如何检测它?

对于第一个问题,因为它总是检测到相同的病毒,我想这是因为我在所有程序中都使用了我的一个例程。但具体是哪一个,我不知道。对于第二个问题,我正在考虑稍微修改程序并重新编译它,足以更改其代码,以便防病毒软件不再识别它并发布新版本。第三个问题是最难的。如何检查我的所有程序与世界上所有的防病毒程序?


更新:
有人知道如何合法处理这个问题吗?似乎许多 Delphi 开发人员都有同样的问题。鲁莽的防病毒公司通过显示大量误报来赚钱,让他们的客户在实际上没有危险的情况下认为他们是安全的。当我们失去客户时,他们正在创造客户。我将问题告知了防病毒公司,但他们仅针对该特定版本进行了修复。下次我发布更新时,误报再次出现。他们只是不在乎。

许多诚实的开发人员因为粗心的防病毒软件而遇到问题。另请参阅:如何防止我的软件出现误报病毒警报?

也许我们可以联合起来反对此类防病毒产品,并迫使他们对误报更加小心,甚至可以为我们因它们而失去的销售额获得一些收入。我们应该签署一份请愿书,让他们知道我们不再接受这一点。

2017 年更新
* 上周我的程序在 VirusTotal 上的检测率接近 50%。我删除了一行代码,神奇地检测到了 61 个(防病毒)中的 2 个。这些防病毒产品的随机性令人惊讶。
* 当程序编译为“发布模式”(带有编译器优化)时,检测率要比在“调试模式”下编译时高得多。
* 使用 EurekaLog 时检测天空火箭。

更新 2019
已经快 9 年了,并没有太大改善。
不幸的是,InnoSetup 也未能幸免。我使用 InnoSetup 创建了一个虚拟安装程序并将其上传到 VirusTotal。52 个程序中有 5 个报告了误报!

结论:

  • 在一天结束时将您的 exe 文件上传到 VirusTotal。如果检测率突然跳跃,请检查您在代码中所做的更改并删除“有害”的更改。
  • 使用 WinRar 3 作为安装程序。它引发的标志少于 WinRar 5 或 InnoSetup。
4

2 回答 2

7

首先,确保您没有 Win32.Induc delphi 病毒,该病毒会更改 SysConst.dcu,因此您编译的应用程序将被感染。

  1. 使用 #3 缩小代码中导致误报的原因。更改进程内存的 API 调用将触发启发式扫描器。即使包含一些 API 函数的名称(例如 WriteProcessMemory)也会触发扫描器。对测试应用程序进行更改并提交到#3,直到缩小问题范围。如果您使用打包程序,那么 AV 软件可能无论如何都会对其进行解包,但在有无打包的情况下进行测试。

  2. 将取决于#1。

  3. Virustotal 被病毒开发者用来检查他们的病毒是否未被检测到,因此 Virustotal 会将任何测试文件发送给反病毒人员进行分析。曾经有一个选项可以关闭此功能,但几年前已将其删除。如果您多次提交申请,这会使问题变得更糟,因此我建议您使用http://virusscan.jotti.org/进行初始测试。

于 2010-11-21T18:57:41.197 回答
5

第三个问题:有一个名为virus total的网站,它使用许多防病毒引擎扫描文件。他们有一个 api,因此您可以将这部分作为构建过程的一部分。

此外,一些类似的问题可能会有所帮助:

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

Delphi 7 中的病毒

https://stackoverflow.com/questions/3534050/my-software-is-not-a-virus-what-should-i-do已删除问题的快照

不小心制造了病毒?

于 2010-11-21T11:14:36.340 回答