Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Для наглядности посмотри на разделитель дробной части в этом сообщении Помощник по изучению англ. языка.
Там где написано по русски и где он перевёл по англ. Собственно как понимаю, там точка используется из-за этого, что автор исходного "Miner Killer" был англоязычным.
Хотел сделать установку владельца и удаления прав без cmd, но как бы я не старался, получаю ошибку UnauthorizedAccessException. Прога запущена от админа, в манифесте прописано highestAvailable. Через запуск cmd, takeown, icacls всё работает
Могут быть как минимум 2 причины, почему это не работает:
1) Не получены привилегии, для этой операции требуются SeSecurityPrivilege и SeTakeOwnershipPrivilege (уж не знаю, есть ли у dot.net управляемый код для их установки).
2) У папки стоит запрет на чтение/изменение прав от имени текущего пользователя. Для обхода этой проблемы, перед изменением ACL следует заменить владельца объекта на себя, либо на локальную группу Администраторов.
Вообще, думаю, такая задачка самое то для нашего нового бота ChatGPT на форуме, ибо прямо сейчас мне лень писать код а этот бот зря бездельничает. Непорядок ) Можете ради интереса опробовать.
Да, сори, не заметил, SetOwner у вас уже есть.
Тут ещё момент, что даже если успешно замените Deny ACE на Allow, то этого может не хватить (конкретный майнер я не анализировал, если есть семпл, я бы кстати, не против бы посмотреть).
Но если будет ситуация, что в ACL вообще нет нужных разрешений (например, есть записи только для пользователя SYSTEM), то приведенного выше кода не хватит, нужно ещё и добавлять дополнительные записи ACE, так сказать дефолтовые (как минимум, для группы Администраторов).
На WinAPI у меня есть код, но я бы не советовал это делать неуправляемым кодом, ибо там очень трудоемко будет переписывать полностью, дофига вызовов.
А вот на счёт чисто выставления привилегий, то вполне можно. Вот за пару минут уже и получил ответ (вам только нужно будет заменить название привилегии на те, что я выше написал).
Но если пока и так работает, то как говорится "работает - не трожь"
Единственное, что могут быть проблемы, когда у юзера поломаны эти самые консольные утилиты, или связанные с ними dll.
Всем привет!
Пытаюсь допилить проверку цифровой подписи. Добавил проверку через каталог безопасности, но получаю ошибку о попытке доступа в защищенную память. Не пойму в чём косяк.
Посмотрел. Это вообще не сможет работать. Откуда взяли такие объявления? Там вообще половина неправильно, даже некоторых API-функций таких нету в природе. И структуры заполняются не так.
Потратил пару часов, чтобы привести хоть в какой-то логический вид, где оно должно завестись. Но уже вышел за лимит. Оставлю на вас. Там осталось пару функций объявить, починить по мелочи утечки, например CloseHandle, и дважды перепроверить объявления WinAPI-функций, ибо там с типами были явно путаницы.
Также обратите внимание, что я заюзал AllocHGlobal, для которой пара FreeHGlobal, тогда как вы в основном юзаете AllocCoTaskMem, для которой своя пара для освобождения. Разница не большая, но я предпочитаю AllocHGlobal, т.к. она выделяет ровно столько памяти, сколько ей указали, а AllocCoTaskMem может отдать больше.
Ещё не совсем понял смысл в RevocationCheckChainExcludeRoot. Отзыв, его обычно либо проверяют полностью у всей цепочки, или не проверяют вообще. Во втором случае доступ к интернету не потребуется, и от этого работать будет быстрее, но для этого ещё потребуется флаг WTD_CACHE_ONLY_URL_RETRIEVAL.
Посмотрел. Это вообще не сможет работать. Откуда взяли такие объявления? Там вообще половина неправильно, даже некоторых API-функций таких нету в природе. И структуры заполняются не так.
@Dragokas, Возникли некоторые вопросы
1) Пару недостающих функций объявил. При проверке получаю на выходе ошибку 0x80092003 или crypt_e_file_error (тестирую на cmd.exe)
2) Почему используется DRIVER_ACTION_VERIFY, если драйвера мне проверять не нужно? Если указать WINTRUST_ACTION_GENERIC_VERIFY_V2, то вместо crypt_e_file_error получаю FileisNotSigned
3) Что такое файловый редиректор? Зачем его отключать и надо ли вообще, если у меня 64-битная сборка?
1) позже посмотрю
2) это мне неизвестно, но для получения контекста каталога используют именно её, а для WinVerifyTrust (если это не драйвер), можно юзать и WINTRUST_ACTION_GENERIC_VERIFY_V2, это проверял экспериментальным путём на всех файлах системы
3)
В контексте работы с файлами, это механизм при котором ОС для 32-битных приложений автоматически переадресовывает все запросы от путей, пролегающих через C:\windows\System32 на C:\windows\SysWow64.
Её отключают, чтобы можно было получить доступ к файлам в C:\windows\System32
Для 64-битной сборки это не имеет смысла. Там редиректор не задействуется.
Есть еще редиректор в реестре, там всё работает по похожему принципу.