Документы и папка Musi c -> Windows Защита Defender Ransomware, ломающая мое приложение - PullRequest
0 голосов
/ 01 марта 2020

Похоже, Windows 10 Ransomware сломал мое приложение (StationRipper). Это приложение на C ++ / MF C, но похоже, что оно сломает любое приложение, которое делает то, что делает StationRipper.

Мой вопрос высокого уровня:

Мое приложение должно записывать файлы (например, mp3-файлы) по мере их записи. Есть ли на самом деле разумное место для этого (например, папка Musi c), если включена защита Ransomware, или я застрял, просто создавая произвольную папку где-нибудь? Мое приложение делает запись за кулисами, поэтому пользователь не может выбрать каталог для каждого файла.

Подробности:

Мое приложение записывает файлы c. Очень долгое время go (например, в 2002 году) он записывал его в каталог пользователей "Musi c". Это работало нормально, но теперь я вижу проблему - я получаю код ошибки «Система не может найти указанный файл». в CreatedDirectory для моего приложения (это было действительно интересно отследить, так как этот код ошибки не указан как ошибка, которую CreateDirectory возвращает), и когда я пытаюсь записать любой файл в этот каталог, если я создаю его вручную с помощью проводника ,

Я наконец попытался запустить mkdir и создать файл в этом каталоге вне моего приложения ... происходит то же самое.

Я отключил защиту от вымогателей в Windows Защитник ... и теперь он работает из моего приложения.

Похоже, мне нужно использовать что-то вроде средства выбора файлов, чтобы сохранить в этом каталоге ? Что, как я уже сказал, не будет работать, поскольку пользователь не участвует после того, как он начинает запись.

Я не могу просто сказать своим пользователям отключить защиту Ransomware для использования моего приложения, но я бы предпочел поместить файлы musi c в их папку Musi c ...

Есть какие-либо предложения?


Дополнительная информация, запрошенная в комментариях:

        TCHAR szDocPath[MAX_PATH];
        szDocPath[0] = 0;
        if (::SHGetSpecialFolderPath(NULL, szDocPath, CSIDL_PERSONAL, FALSE))
        {
            _tcscat(szDocPath, "\\StationRipper");
            DWORD m_dwLastError = ::GetLastError();
            BOOL bResult = CreateDirectory(szDocPath, NULL);

            m_dwLastError = ::GetLastError();
        }

Запуск вышеупомянутого с защитой Ransomware приводит к нулю. С выключенным возвращает 1 (и каталог создан).

...