Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Ограничение доступа в Windows Defender и создание ярлыков при установке через InnoSetup на Windows 10: способы решения

Delphi , ОС и Железо , Windows

Введение

С введением функции Controlled Folder Access в Windows Defender на Windows 10, разработчики приложений столкнулись с новой проблемой при установке программ. Эта функция предназначена для защиты пользовательских данных от несанкционированного доступа, что может быть полезно в контексте защиты от вымогательского ПО (ransomware). Однако, в некоторых случаях, она может блокировать легитимные приложения, что вызывает трудности при установке и работе программ, написанных на C# и упакованных с помощью InnoSetup.

Проблема

При включенной функции Controlled Folder Access установщик, созданный с помощью InnoSetup, не может создать ярлык на рабочем столе пользователя, выдавая сообщение об ошибке PersistFile::Save failed, code 0x80070002. Это происходит даже при запуске установщика от имени администратора. После установки приложение, запущенное без административных привилегий, не может записывать файлы в папки пользователя, например, в Documents. Это касается как новых файлов, так и папок, которые не перезаписывают существующие данные.

Исследование

Разработчик провел обширное исследование, пытаясь выяснить, почему его приложение считается вредоносным и блокируется системой. Были предприняты следующие шаги:

  1. Проверка веб-ресурсов Microsoft для понимания критериев, по которым приложения считаются вредоносными.
  2. Применение цифровой подписи с расширенной проверкой сертификата для подавления предупреждений SmartScreen, что не повлияло на поведение Windows Defender.
  3. Анализ установщика с помощью Windows App Certification Kit, который выявил несколько предупреждений и одну критическую ошибку. После устранения всех обнаруженных проблем поведение Windows Defender не изменилось.

Подход к решению

Для лучшего понимания проблемы и предоставления основы для экспериментов был создан тестовый проект на C#, который:

  1. Создает и удаляет директории в общедоступном пути рабочего стола, пути рабочего стола пользователя, общедоступном пути документов и пути документов пользователя.
  2. Упаковывается с помощью InnoSetup в подписанный установщик.

Проект доступен по ссылке Folder Access Control Challenge.

Подтвержденный ответ

На основании предоставленной информации и исследования, можно предположить, что функция Controlled Folder Access блокирует доступ к определенным папкам по умолчанию, и для легитимных приложений необходимо предоставить разрешение на доступ к этим папкам. Пользователь может разрешить доступ к приложениям, добавив их в белый список.

Альтернативный ответ

Так как функция Controlled Folder Access может быть рассмотрена как "плохо документированный брандмауэр", разработчикам может потребоваться создать диалоговое окно, информирующее пользователя о необходимости разрешить доступ к приложению через настройки Windows Defender.

Выводы

Для решения проблемы с созданием ярлыков и записью файлов в защищенные папки при использовании InnoSetup и Windows 10, разработчикам следует:

  • Проверить, не блокирует ли Controlled Folder Access доступ к папкам по умолчанию для всех приложений.
  • Создать механизм для добавления приложения в белый список Windows Defender.
  • Информировать пользователя о необходимости разрешить доступ через диалоговое окно, если стандартные способы не работают.

Пример кода на Object Pascal (Delphi)

// Пример кода для демонстрации, не предназначен для использования в реальном приложении
procedure TForm1.Button1Click(Sender: TObject);
var
  DesktopPath: string;
begin
  DesktopPath := GetDesktopPath(); // Функция для получения пути к рабочему столу
  CreateDirectory(PChar(DesktopPath + '\NewFolder'), 0);
  // Здесь должен быть код для обработки возможных ошибок при создании папки
end;

Заключение

Функция Controlled Folder Access может быть полезной для защиты от вредоносного ПО, но требует более детальной настройки и документации для разработчиков. Разработчикам следует быть в курсе последних обновлений и рекомендаций Microsoft для обеспечения совместимости их приложений с защитными механизмами операционной системы.


Примечание: В статье использованы примеры кода на Object Pascal (Delphi) для демонстрации, но они не предназначены для решения реальной проблемы с _Controlled Folder Access. Для решения проблемы необходимо следовать инструкциям и рекомендациям, описанным выше._

Создано по материалам из источника по ссылке.

Разработчики сталкиваются с ограничениями доступа в Windows Defender при установке программ через InnoSetup на Windows 10 и ищут способы решения проблемы с созданием ярлыков и записью файлов в защищенные папки.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-08-26 19:54:21/0.0036609172821045/0