Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何防止我的软件出现误报病毒警报?_Delphi_Antivirus_Virus Scanning - Fatal编程技术网

Delphi 如何防止我的软件出现误报病毒警报?

Delphi 如何防止我的软件出现误报病毒警报?,delphi,antivirus,virus-scanning,Delphi,Antivirus,Virus Scanning,可能重复: 到目前为止,我的程序有超过15个错误的病毒警报。其中大部分来自卡巴斯基,卡巴斯基报告的病毒总是相同的:特洛伊木马程序gamestepher.Win32.Lmir.pcd。 有三个问题: 为什么会出现 如何预防 如何检测它 对于第一个问题,因为它总是检测相同的病毒,我猜这是因为我的一个例程,我在我的所有程序中使用。但我不知道到底是哪一个。 对于第二个问题,我想修改一下程序,然后重新编译,只需要修改一下代码,这样杀毒软件就不会再识别它并发布新版本了。 第三个问题是最难的。如何对照世界上

可能重复:

到目前为止,我的程序有超过15个错误的病毒警报。其中大部分来自卡巴斯基,卡巴斯基报告的病毒总是相同的:特洛伊木马程序gamestepher.Win32.Lmir.pcd。 有三个问题:

  • 为什么会出现
  • 如何预防
  • 如何检测它
  • 对于第一个问题,因为它总是检测相同的病毒,我猜这是因为我的一个例程,我在我的所有程序中使用。但我不知道到底是哪一个。 对于第二个问题,我想修改一下程序,然后重新编译,只需要修改一下代码,这样杀毒软件就不会再识别它并发布新版本了。 第三个问题是最难的。如何对照世界上所有的防病毒程序检查我的所有程序


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

    许多诚实的开发者因为粗心的杀毒软件而遇到问题。 另见此:

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

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

    2019年更新
    这几乎是9年后的事了,没有多大改善。
    不幸的是,InnoSetup也不能幸免。我使用InnoSetup和VirusTotal创建了一个虚拟安装程序。52个程序中有5个报告为假阳性

    结论:

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

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

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

    ()


    首先,确保您没有Win32.Induct delphi病毒,该病毒会更改syscont.dcu,从而使您编译的应用程序受到感染

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

  • 将取决于#1

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


  • 实际上,jotti.org也会将提交的文件发送给AV公司。我不认为这是一个很大的问题,所以也许可以使用virustotal,因为它拥有最多的AV引擎(jotti是43个,而jotti是20多个)。我没有Win32.INDUCT。我讨厌这些反病毒公司,他们指责无辜的软件开发人员只是为了确保他们得到尽可能多的警报(不管是好警报还是假警报)。尝试在你的软件中包含版本信息,这可能会给它一些合法的威信!“修复我的软件的反病毒检测”这篇文章很有用,但是Stackoverflow版主以其无限的智慧删除了它。@Rigel我添加了一个屏幕截图。我不同意删除,我已经标记了它,但可悲的事实是,这就是StackOverflow的现状。作为一名版主是一项艰巨而吃力不讨好的任务,由于网站的普遍衰败,这项任务变得更加艰巨:这是一篇关于SO数量下降的好文章:尽管这确实令人恼火,但AV公司通常并不是为了让自己看起来比竞争对手更好而明确设计的误报;如果有什么区别的话,那实际上会让他们看起来更糟,因为这会让他们更糟糕。问题仅仅是他们中的很多人在分析他们不熟悉的程序时过于热心(因此往往会发现更多的误报),这通常包括你自己编译的程序。是的,但是如果它太频繁地发出这样的消息,或者对于其他AV程序没有检测到任何东西的程序(特别是如果程序的文档或FAQ明确指出此特定AV程序给出了假阳性),人们会开始怀疑该AV程序。对我有帮助的是1)关闭优化,2)将exe与upx.exe打包