是啥导致 VirusTotal 将空程序标记为特洛伊木马?
Posted
技术标签:
【中文标题】是啥导致 VirusTotal 将空程序标记为特洛伊木马?【英文标题】:What could be causing VirusTotal to flag an empty program as a ***?是什么导致 VirusTotal 将空程序标记为特洛伊木马? 【发布时间】:2020-02-21 14:04:29 【问题描述】:在 Visual Studio 中,我创建了一个新的空项目,给它一个 .c 文件并仅将其放入其中,然后针对 x86 进行优化并进行编译,VirusTotal 将其标记为木马。
-
可能是什么原因造成的?
我可以做些什么来解决它?
int main(void)
return 0;
我使用 MalwareBytes 扫描我的计算机以查找令人讨厌的东西,它没有发现任何意外...并且在计算机内存中没有显示任何检测到的东西。
相关:Virustotal flag 32 bit version of my program as malware
【问题讨论】:
我从未听说过这两个防病毒程序。我不会太在意这个。这两个 AV 程序可能过于谨慎了。 是 C 还是 C++?我可以用 C 重现这个,但它没有触发 Jangmin,而是 Cylance。 如果可执行文件未签名,通常会触发防病毒软件,这可能是原因之一? @Sparky 这是一个空的 C++ 项目,但它是一个 .c 文件,因此可以编译为 C 但是它很可能链接为 C++ 可执行文件,因此它会拖入C++ 运行时库。 @AndrewHenle 实际上使用 Visual Studio 2019 甚至无法创建 C 项目,只能创建 C++ 项目。 【参考方案1】:病毒扫描程序会在代码中寻找各种模式、行为和其他内容。
另一个重要的事情是signed 软件不太可能被检测为误报。
我刚刚向 Virustotal 提交了完全相同的 .exe,一次签名一次未签名。
签名版triggerd 2 hits,未签名版triggerd 16 hits。
我不会太在意这个。但是如果你写的是专业软件,你肯定应该在发货前对所有的 .exe 和 .dll 文件进行签名,但签名并不能提供任何保证。
C++源代码:
int main()
在发布模式下使用 Visual Studio 2019 16.4.3 编译
配置属性->C/C++->运行时库:多线程 (/MT)
配置属性->常规->平台工具集:Visual Studio 2019 (v142)
配置属性->常规->Windows SDK 版本:10.0.17134.0
【讨论】:
您能否澄清一下,如果有些程序不执行任何操作而将其标记为病毒,那么(32 位)程序如何不标记为病毒?我是否应该简单地忽略那些特定的病毒扫描程序,或者除了签署我的软件之外我应该做些什么,这会以 0 次检测通过测试吗?鉴于您的扫描仪与我的扫描仪不同,我认为忽略这一点是有问题的。我根本不知道专业的软件发行商在这种情况下会怎么做。 @Sparky 正如我在回答中所写,签署您的二进制文件可降低某些病毒扫描程序发现误报的可能性,但不能保证。不要问我为什么某些 AV 扫描仪会在某些二进制文件中发现误报,而在其他二进制文件中却没有,只有 AV 公司知道。 AV 扫描仪可以是真正的 PITA。 @Sparky 你无能为力。我工作的公司每 15 个月左右就会遇到一次这个问题。然后我们联系每个 AV 公司(通常少于 4 个)并单独处理它们。这是一个 PITA。 那么问题来了,我必须比我已经做的少吃一粒盐。我过去说,“3 次或更多检测意味着要小心”,但看看我们在这里的测试......我想发布 SHA-256 哈希是我真正能做的。【参考方案2】:现代病毒扫描程序正在寻找不寻常的程序。大多数程序都做某事。你的没有做任何事情,这使得它不寻常。添加一些代码。
【讨论】:
我对一个实际上做某事的无害程序也有同样的问题。我尝试了一个什么都不做的程序,我们到了。其他程序:virustotal.com/gui/file/… IDA Freeware 中的.exe 看了,不知所措; main 函数只做其余部分,我不知道如何破译。 这可能是原因。我只是尝试了一些配置,它们都被至少两个 AV 程序检测到,最糟糕的结果是一个带有静态链接(多线程(/MT))和“Visual Studio 2019(v142)”平台的空 c++ 程序其中 16 个 AV 检测到了某些东西...... @Jabberwocky 你看到我在评论中链接的“其他程序”和你的测试之间有相似之处吗? @Sparky 不,这与我的测试触发的 AV 不同。 @Jabberwocky 在 /MD 和 /MT 运行时库嵌入选项之间的更改也会更改不同防病毒软件的检测。以上是关于是啥导致 VirusTotal 将空程序标记为特洛伊木马?的主要内容,如果未能解决你的问题,请参考以下文章
access中查询出来值的为空,如何将空值改为0,具体表达式是啥,从啥地方输入表达式,多谢
是啥导致 LIKE 语句忽略 html 标记、逗号后的单词或以句点结尾?