为什么这个代码会导致Windows Defender发疯,并将这个代码识别为一个名为Lumicrouz.j的特洛伊木马



我正在使用一个名为Raylib的库开发桌面应用程序,对于那些不知道Raylib是什么的人来说,它是一个用于制作游戏的开源渲染API。默认情况下,Raylib不允许作为窗口调整大小或最大化。为了解决这个问题,我发现了这个代码:

void ToggleGlutNormalWindow(LPCTSTR szWindowTitle)
{
long dwStyle;
HWND hwndGlut;
hwndGlut = FindWindow(NULL, szWindowTitle);
dwStyle = GetWindowLong(hwndGlut, GWL_STYLE | WS_THICKFRAME | WS_SIZEBOX);
// Flips Between On and Off
dwStyle ^= WS_MAXIMIZEBOX | WS_THICKFRAME | WS_SIZEBOX;
SetWindowLong(hwndGlut, GWL_STYLE, dwStyle);
}

正如你可能从我的标题中看到的那样,当编译和运行时,对我来说,这会产生一个Windows Defender警告,告诉我它检测到了一个名为Lumicrouz.j.的特洛伊木马

有人知道启用最大化按钮和调整大小的更好方法吗?或者你知道为什么这会被检测为病毒吗?

运行CCleaner并尝试重新创建消息后,问题得到了解决。我仍然不知道它为什么这么做,因为我没能像克兰茨建议的那样获得链接。感谢克兰茨的帮助,也感谢Ken Wayne VanderLinde在问题中修复了我的代码。祝大家今天愉快!

这是编程中的一个常见问题,没有简单的答案。

反病毒程序保存了一个恶意软件签名数据库,从引用特定的DLL到实现加密货币矿工等特定算法,再到像rowhammer这样更奇特的东西。这是相当有效的,很容易捕捉衍生或简单的恶意软件,并且假阳性的几率很低。虽然可能会出现误报,但我在您的代码中没有看到任何会导致误报的内容。

然而,越来越多的反病毒软件开始扫描可执行文件,并将其分析发送到反病毒公司的云服务。如果他们的数据库中没有类似的内容,防病毒程序会将可执行文件标记为";低信誉";或";未识别的";或";未经核实"这相当有效,因为绝大多数人只会运行非常常见的程序,比如办公室编辑器和网络浏览器。当你是一名程序员并生成";低信誉";可执行文件每天数十次。

这很可能是你遇到的。

相关内容

  • 没有找到相关文章

最新更新