我正在编写一个使用SFML进行渲染/输入的程序。问题是大多数防病毒程序将其检测为某种恶意软件。其中一些会在程序启动时立即显示警报(即使在visual studio中的调试模式下),也会在键盘输入时显示警报。我的问题: 1)你知道为什么会这样吗? 2)我该如何避免它?
P.S。 SFML是我使用的唯一库,其余的是我的代码 p.p.s根据我的信息,我猜这是因为拦截键盘事件可以被解释为恶意行为。
答案 0 :(得分:2)
某些使用DirectInput7处理键盘的应用程序有时会被某些(哑)AV软件和防火墙检测为“键盘记录程序”。
如果在从源代码编译sfml后遇到此问题,您的系统是干净的,并且病毒/恶意软件定义是模糊的“通用恶意软件”,那么它可能是误报。它非常罕见,但有时编译软件会在防病毒软件中触发误报(例如在mingw下编译glib-2.0会产生avast杀毒软件的海报 - 每个模块测试或使用gio的程序将被检测为恶意软件)
当然,也有一些与sfml相关的dll被病毒感染的可能性 - 如果你没有自己编译它。
自己编译。 Avast和Microsoft Security Essentials向我发出通用恶意软件警告,Norton强行删除可执行文件。
如果您完全确定它是误报,那么您的一个防病毒应该有排除列表。您还可以向AV软件维护者报告库误报 - 否则如果您决定分发APP,您的用户将面临同样的问题。 此外,如果您计划分发应用程序,我建议您使用预编译的二进制文件。首先,预编译的二进制文件可能不会触发病毒警报,其次,AV软件可能已将它们识别为“正常”未感染的可执行文件,第三,您不必等待库编译完成。< / p>
如果AV软件没有排除列表,或者预编译的pbinaries也会导致病毒警报,那么您可以从sfml切换到其他内容 - 例如libSDL。