【问题标题】:Program (with SFML) detected as virus/malware/trojan程序(带有 SFML)被检测为病毒/恶意软件/木马
【发布时间】:2012-05-13 17:48:42
【问题描述】:

我正在编写一个使用 SFML 进行渲染/输入的程序。问题是大多数防病毒程序将其检测为某种恶意软件。其中一些会在程序启动时立即显示警报(即使在 Visual Studio 的调试模式下),而另一些会在发生键盘输入时显示警报。我的问题: 1)你知道为什么会这样吗? 2) 如何避免?

附言SFML 是我使用的唯一库,其余的是我的代码 p.p.s 根据我掌握的信息,我猜这是因为拦截键盘事件可以被解释为恶意行为。

【问题讨论】:

    标签: c++ visual-c++ sfml


    【解决方案1】:

    某些使用 DirectInput7 处理键盘的应用程序有时会被某些(愚蠢的)反病毒软件和防火墙检测为“键盘记录器”。

    如果您在从源代码编译 sfml 后遇到此问题,并且您的系统是干净的,并且病毒/恶意软件定义是模糊的“通用恶意软件”,那么很可能是误报。 非常很少见,但有时编译软件会触发防病毒软件中的误报(例如,在 mingw 下编译 glib-2.0 会使用 avast antivirus 产生大量病毒警报 - 每个模块测试或使用 gio 的程序将被检测为恶意软件)

    当然,一些sfml相关的dll也有可能被病毒感染——如果你没有自己编译的话。

    自己编译。 Avast 和 Microsoft Security Essentials 给了我一个通用的恶意软件警告,诺顿强行删除了可执行文件。

    如果您完全确定这是误报,那么您的其中一款防病毒软件应该有排除列表。您还可以将库报告为误报给 AV 软件维护者 - 否则如果您决定分发 APP,您的用户将面临同样的问题。 此外,如果您打算分发应用程序,我建议您使用预编译的二进制文件。首先,预编译的二进制文件可能不会触发病毒警报,其次,AV 软件可能已经将它们识别为“正常”未感染的可执行文件,第三,您不必等待库编译完成。

    如果 AV 软件没有排除列表,或者如果预编译的 pbinaries 也导致病毒警报,那么您可以从 sfml 切换到其他内容 - 例如 libSDL

    【讨论】:

    • 我自己编译的。 Avast 和 Microsoft Security Essentials 给了我一个通用的恶意软件警告,诺顿强行删除了可执行文件。另外,我是静态链接的,所以受感染的 SFML dll 是不可能的。
    • 好主意。我将尝试使用预编译的二进制文件或切换到另一个渲染框架。谢谢
    • 尝试将编译后的文件上传到virustotal.com,看看他们有多少反病毒程序检测到任何东西。如果只是少数,那么很可能只是误报。如果它们中的大多数或全部检测到某些东西,您可能会遇到问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多