c++ - 程序(使用 SFML)被检测为病毒/恶意软件/特洛伊木马

标签 c++ visual-c++ sfml

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

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

最佳答案

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

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

当然,如果您没有自己编译,也有可能某些与 sfml 相关的 dll 被病毒感染。

compiled it myself. Avast and Microsoft Security Essentials give me a generic malware warning, and Norton removes the executable forcibly.

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

如果 AV 软件没有排除列表,或者如果预编译的 pbinaries 也会引起病毒警报,那么您可以从 sfml 切换到其他东西 - 比如 libSDL .

关于c++ - 程序(使用 SFML)被检测为病毒/恶意软件/特洛伊木马,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10444493/

相关文章:

c++ - 如何在 c 中返回一个 float 数组并将其保存为一个 float 数组以备后用?

c - 编译 C 时,Visual Studio 头文件中出现错误 C3409

c++ - X 类型的值不能用于初始化 X 类型的实体

C++ 无法返回 sf::Texture

c++ - SFML - 调整窗口大小时奇怪的 RenderTexture 行为

c++ - 将 textBox 传递给函数。 C++

c++ - 这是低效的吗?

c++ - this 和 this@entry 的区别?

visual-c++ - 更快的组装优化方式在 RGB8 和 RGB32 图像之间转换

c++ - 耗时 C++ SFML 2 后做某事