c++ - 如何从virustotal.com 中删除恶意软件标记

标签 c++ windows visual-studio boost exe

我使用 C++ Win32 API 和 boost 库编写了自己的代码。该代码编译为 Windows 的 EXE 应用程序。我可以保证它没有恶意软件,但 Virustotal.com 报告称,56 个防病毒软件中有 9 个会将该 exe 文件识别为含有恶意软件。

我认为没有理由发生这种情况。我注意到前一段时间,使用 LCC-Win32 编译器编译东西会引发一些恶意软件标志,而使用 Visual C++ 编译相同的代码会生成一个干净的 EXE 文件,但现在即使 Visual C++ 也会生成在virustotal 上标记为恶意软件的 EXE 文件。

我可以说我的构建计算机没有被感染,因为如果我只编译 Hello World 代码或其他一些更大的应用程序,那么 Virustotal 根本不会报告新编译的 exe 的任何恶意软件,如果有的话,它会报告任何恶意软件。疯狂的事情在我背后发生了。

有什么方法可以消除由virustotal 报告的不正确的恶意软件标记吗?我的意思是,无需更改我的代码(因为我知道它是干净的,所以我编写了它)。我可以在virustotal 的某个地方报告他们的病毒测试已被破坏吗?我是否必须通过电子邮件逐一联系其防病毒软件触发该标志的所有防病毒公司,要求他们修复其防病毒软件?有没有地方可以报告误报?

最佳答案

我曾在一家领先的防病毒公司和其他几家公司工作过。所以尝试回答你的问题。

Is there any way to get rid of the incorrect malware flags reported by virustotal?

防病毒软件基本上会检查可执行文件是否有一些可疑的症状。例如,使用恶意加壳器、入口点混淆、使用可疑指令集、头信息泄露等。它们本质上是围绕可执行文件的初始字节集进行的。如果其中任何一个在您的感知之外被合并到您的可执行文件中,防病毒软件会将其触发为恶意的。如果你想“摆脱恶意标志”,你必须缩小导致它们的原因(可能是:函数调用、模块、特定的后处理等),然后简单地尝试从其中删除根本原因您的应用程序。

至少,如果您可以知道每个防病毒软件为您的可执行文件报告的恶意软件类型,这将有助于缓解问题。

I mean, without changing my code (since I know it's clean, I wrote it).

如果您想编辑直接可执行的二进制文件以删除“那几个标志”,而无需更改代码,那么事情并不是那么简单。 (通过阅读我上面写的关于防病毒软件如何在将文件触发为恶意文件之前对其进行分析的内容,您可能已经意识到)。

此外,你不能声称它是干净的“因为你写了它”。因为您实际上编写了其中的一部分。可能您在不知不觉中使用了第三方库/组件,您不知道它会导致整个可执行文件被视为恶意。 (此外,如果您的系统已被感染,您新开发的可执行文件可能会在构建后立即被感染。这种情况发生在您的感觉之外。)

Can I report somewhere at virustotal that their virus test is broken?

就您而言,这称为“误报”。这是virustotal 在其常见问题解答中关于误报的说法:

VirusTotal 正在检测我开发的合法软件, 请删除检测

VirusTotal 只是充当信息聚合器,呈现 防病毒结果、文件特征分析工具输出、URL 扫描 引擎结果等。VirusTotal 不对误报负责 由其使用的任何资源生成、误报问题 应直接与背后的公司或个人联系 正在考虑的产品。

但是,我们可以帮助您消除误报。病毒总数 建立了一个关于误报的预警系统,其中 开发者可以将他们的软件上传到私有(private)商店,这样的软件 每天都会使用最新的防病毒签名进行扫描。 每当检测到的任何文件发生变化时,您 立即收到通知,以减少误报 尽快。

Do I have to contact all the antivirus companies whose antivirus triggers the flag individually, one by one, by email, asking them to fix their antivirus software? Is there any place where one can report a false positive?

是的。正如virustotal在上述常见问题解答中提到的,误报问题 应直接与背后的公司或个人联系 正在考虑的产品。

关于c++ - 如何从virustotal.com 中删除恶意软件标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248882/

相关文章:

c++ - 如何使用 GCC 导出 C++ 函数?

windows - 如何让用户的Windows版本低于Windows 8时程序退出?

node.js - 如何从 Windows 卸载 mongodb

c++ - 如何对导出 C++ 类的 DLL 使用延迟加载

c# - 扩展 C# 语法的想法

c++ - 本地禁用填充

c++ - 在 C++ 中从字符串 vector 中删除一个字符

c++ - 在 C++ 中抑制系统 ("ping") 输出

windows - 带有 %cI 占位符的 git log 漂亮格式返回 "cI"而不是提交日期

c++ - Qt C++ 从另一个类访问窗口方法