Почему этот код приводит к тому, что Защитник Windows сходит с ума и идентифицирует этот код как троян с именем Ludicrouz.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 о том, что он обнаружил троян, известный как Ludicrouz.j.

Кто-нибудь знает лучший способ включить кнопку максимизации и изменить размер, или вы знаете, почему это определяется как вирус?


person AR0106    schedule 05.04.2020    source источник
comment
Защитник Windows должен предоставить вам ссылку на описание этого троянца, и чтение этого описания может помочь вам понять, почему обнаружена ваша программа.   -  person Ruifeng Xie    schedule 05.04.2020


Ответы (2)


Это распространенная проблема в программировании, и на нее нет простого ответа.

Антивирусные программы хранят базу данных сигнатур вредоносных программ, которая варьируется от ссылок на определенные DLL до реализации определенных алгоритмов, таких как майнеры криптовалюты, или более экзотических вещей, таких как rowhammer. Это довольно эффективно, легко перехватывает производные или упрощенные вредоносные программы, а вероятность ложного срабатывания мала. Однако ложные срабатывания могут случаться, но я не вижу в вашем коде ничего, что могло бы их вызвать.

Однако все больше и больше антивирусов начинают сканировать исполняемые файлы и отправлять их анализ в облачный сервис антивирусной компании. Если в их базе данных нет ничего подобного, антивирусная программа пометит исполняемый файл как низкорепутационный, нераспознанный или непроверенный. Это довольно эффективно, потому что подавляющее большинство людей будут запускать только довольно распространенные программы, такие как офисные редакторы и веб-браузеры. Проблема возникает, когда вы программист и генерируете исполняемые файлы с низкой репутацией десятки раз в день.

Скорее всего, это то, с чем вы столкнулись.

person Steven Gann    schedule 01.08.2020

После запуска CCleaner и попытки воссоздать сообщение проблема была решена. Я до сих пор не совсем понимаю, почему это было сделано, потому что я не смог получить ссылку, как Krantz предложил мне стоит сделать. Спасибо Krantz за помощь и спасибо Ken Wayne VandeLinde за исправление моего кода в вопросе. Всем хорошего дня!

person AR0106    schedule 05.04.2020
comment
Пожалуйста, не используйте ответы, чтобы сказать спасибо или поговорить с другими. Ответы должны предоставить решение; SO — это не доска объявлений или форум, это онлайн-справочник вопросов и ответов по программированию. - person the Tin Man; 22.04.2020