В общем ситуация такая. Сделал дефолтный винлокер, все работает, всё гуд. В автозагрузку добавляется, но при перезагрузке ПК, прежде чем он запустится, вылазит окно подтверждения запуска файла из неизвестного источника, если нажать нет, то локер не запуститься :)))) Ситуация кринж в итоге получается. Кто знает как обойти это дерьмо?
Я думаю, что это происходит по очевидной причине. Windows пытается запустить приложение из неизвестного источника и UAC (User Account Control) блокирует запуск приложения, предупреждая, что это какой-то ноунейм. Делает он это, потому что ваше приложение не имеет цифрового сертификата(или цифровой подписи). Таким образом у вас два варианта(оба гуглятся): 1) Подписать своё приложение, чтобы оно стало доверенным. 2) Выключать UAC при первом запуске приложения. Это можно сделать путём редактирования реестра. Ну и не советую писать винлокер на C#, потому что может получиться, чтобы у пользователя не будет .NET фреймфорка нужной версии и он не сможет запустить ваше приложение. Получится не менее кринжовая ситуация. Для вирусов больше подойдёт C/C++. Надеюсь мой ответ помог.
поищи CVE для байпасса юака, разницы по большому счёту нет на каком ЯП ты реализуешь (дотнет фреймворк энивей будет на таргет машинке)
using System.Management.Automation; var script = PowerShell.Create(); script.AddScript("Set-ItemProperty \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\" -Name \"ConsentPromptBehaviorAdmin\" -Value \"0\" "); script.Invoke(); CSHARP using System.Management.Automation; var script = PowerShell.Create(); script.AddScript("Set-ItemProperty \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\" -Name \"ConsentPromptBehaviorAdmin\" -Value \"0\" "); script.Invoke();