Как запретить программе Windows изменять атрибуты папки / файла?

372
computationalprince

Моя текущая проблема заключается в том, что я пытаюсь не допустить, чтобы программа изменила атрибуты (в частности, разрешения на запись) своих собственных файлов, чтобы не дать программе обновиться самостоятельно, поскольку она подключена к Интернету. До сих пор я пытался запретить пользователю, под которым выполняется программа, записывать (то есть изменять / изменять) исполняемый файл программы и все ее файлы с помощью icacls.exe . Этот встроенный системный инструмент может изменять права доступа пользователей к файлам / папкам. Для начала я предоставил полный доступ к исполняемому файлу программы и ее файлам, чтобы снять все ограничения, затем я запретил следующее: DE, WD, WDAC, WO, AS, WEA, WA (см. Руководство по icacls.exe).чтобы увидеть, что они означают), но после перезапуска программы атрибуты были сброшены в пользу программы, и она сразу же начала обновляться. После этого неудачной попытки, я отрицал дополнительные разрешения, такие как: D, но я уже не мог запустить программу, так как я не мог даже реж директории программа была расположена в том же поведение можно заметить с другим дополнительным отказывали разрешение, включая, но. не ограничиваясь, M, W, GW. Я также попытался скрыть attrib.exe от программы, так как заметил, что conhost.exe всегда вызывается программой при запуске, с помощью которой она может передать attrib.exeкоманда для изменения атрибутов, если только пользователю, под которым запущена программа, не разрешено изменять атрибуты, но, опять же, отказ в разрешениях M, W, GW, о которых я упоминал ранее, не позволяет мне просматривать каталог, в котором находится программа и ее файлы, не говоря уже о выполнении Это. Может ли быть так, что программа использует Windows API для изменения атрибутов своих файлов? Какие есть другие методы, чтобы помешать этой программе изменять атрибуты, помимо того, что я уже упоминал?

0

1 ответ на вопрос

3
Alex

1. НЕ работайте в административном аккаунте. Создайте стандартный аккаунт и работайте там. Используйте учетную запись администратора только для установки прав доступа к файлам, которые вам нужны, или для установки / удаления новых программ, или для настройки параметров системы. Если ваша учетная запись является административной, то программа может легко перезаписать все ваши ограничения, поскольку она работает и в административной учетной записи.

2. Заблокируйте исходящее соединение в брандмауэре для вашей упрямой программы в дополнительных настройках брандмауэра.

Вы можете попытаться отозвать право собственности на файлы, которые вы хотите, чтобы они были недоступны для записи, и назначить пользователя с ограниченными правами другим владельцем (не учетной записью, запускающей программу), но я думаю, что функциональность программы будет нарушена.

Пользователь, под которым выполняется программа, не является членом группы «Администраторы», поэтому никакие консольные команды не могут быть выполнены с правами администратора. Я должен также заявить, что тот пользователь, который выполняет программу, запускается в моей собственной пользовательской среде, которая является членом группы администраторов, но с помощью UAC я могу заблокировать любую попытку выполнить команду с правами администратора. Я не хочу блокировать соединения, потому что программа должна оставаться подключенной к Интернету, чтобы позволить мне использовать ее необходимые функции, даже если она пытается загрузить обновления патчей и другие материалы. computationalprince 6 лет назад 0
«пользователь, который запускает программу, запускается внутри моей собственной пользовательской среды, которая является членом группы администраторов» - тогда эта программа может использовать системный API в качестве администратора. Попробуй отследить вызовы функций, чем он пользуется. Вы можете использовать ProcessMonitor (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) или WinAPIOverride32 (http://jacquelin.potier.free.fr/winapioverride32/) или APImonitor (http: // www.rohitab.com/apimonitor/) Alex 6 лет назад 0
Здорово, что вы упоминаете ProcMon, поскольку я использую его довольно часто, хотя я не достаточно опытен с ним. Документируется ли где-нибудь мониторинг вызовов функций? Кстати, я только что вошел в учетную запись пользователя со стандартными привилегиями для запуска программы и стал свидетелем того же поведения - атрибуты по-прежнему сбрасываются в пользу программы. computationalprince 6 лет назад 0
"Документируется ли где-нибудь мониторинг вызовов функций?" Да, официальный здесь: https://msdn.microsoft.com/en-us/library/ms123401.aspx, и вы также можете найти неофициальный API на бесчисленных сайтах хакеров. Попробуйте отозвать разрешение «ВЛАДЕЛЕЦ / Создатель», так как обычно оно имеет полный доступ Alex 6 лет назад 2
Я вернулся с небольшим обновлением, чтобы сказать, что уловка отзыва разрешения решила проблему. Эта программа теперь не может изменять атрибуты при условии, что исполняемому файлу программы и его файлам (вероятно, достаточно одного исполняемого файла) отказано в разрешениях для: (DE, WD, WDAC, WO, AS, WEA, WA). Спасибо, Алекс, за ваше время и усилия. computationalprince 6 лет назад 0
Нет проблем, я рад, что смог вам помочь! Alex 6 лет назад 0