首页 文章

如何防止我的软件出现误报病毒? [重复]

提问于
浏览
13

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

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

  • 为什么会出现?

  • 如何预防?

  • 如何检测?

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


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

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

也许我们可以团结起来反对这些防病毒产品,并迫使他们对误报警察更加谨慎,甚至为我们因为它们而失去的销售收回一些收入 . 我们应该签署某种请愿书,让他们知道我们不再接受这一点 . https://docs.google.com/forms/d/1H3_O1z1iEqfh9ZT9u3B0R1tGEj-Hc9o7rAE0LKPr33Y

Update 2017
*上周,我的程序在VirusTotal上的检测率接近50% . 我删除了一行代码,神奇地检测到61个中的2个(防病毒) . 令人惊讶的是,这些防病毒产品的随机性如何 .
*当编译程序时'Release mode'(使用编译器优化)然后在'Debug mode'中编译时,检测值会高很多 .
*使用EurekaLog时检测天空火箭 .

结论:在一天结束时将您的exe文件上传到VirusTotal . 如果检测率突然跳跃,请检查您在代码中所做的更改并删除“有害”的更改 .

2 回答

  • 5

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

    • 使用#3缩小代码中导致误报的内容 . 更改进程内存的API调用将触发启发式扫描程序 . 即使包含某些API函数(如WriteProcessMemory)的名称也会触发扫描程序 . 对测试应用程序进行更改并提交到#3,直到您缩小问题范围 . 如果您使用打包机,那么AV软件可能无论如何都会打开包装,但无论是否包装都可以进行测试 .

    • 将取决于#1 .

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

  • 7

    第三个问题:有一个名为virus total的网站,它扫描带有大量防病毒引擎的文件 . 他们有一个api,所以你可以在构建过程中完成这一部分 .

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

    Antivirus False positive in my executable

    Virus in Delphi 7

    Fix anti-virus detection of my software

    Accidentally created a virus?

相关问题