В %PF%\WindowsApp лежит приложуха. Я стал овнером её папочки, отключил наследование разрешений, и разрешил всем всё на этой папке и её содержимом. Но при попытке переименовать там файлик получаю отлуп — в первом диалоге запрашивает повышение прав (но оно, судя по всему, не происходит), и потом говорит, что попросите права у такого-то пользователя, и всё
Запустил CMD из-под админа, пробую там REN — отказано в доступе.
Обратил внимание, что WindowsApp имеет установленный атрибут ReadOnly. Пытаюсь сбросить — требует права админа, потом что-то шуршит, типа делает, потом заходишь опять в свойства — а там оно снова стоит.
Попробовал удалить файл — он удалился. Хочу скопировать из сохраненной копии — не даёт, недостаточно прав.
Здравствуйте, пффф, Вы писали:
П>Что я не так делаю?
Боюсь, Вы взялись за нечто уникальное и грандиозное, не изучив прежде матчасть должным образом. И в таких случаях, конечно, бывает, что проблемы решаются по ходу дела, но как бы не получилось у Вас нечто уродливое и глючное.
Re[2]: Не получается переименовать файл в %PF%\WindowsApp
Здравствуйте, Евгений Музыченко, Вы писали:
П>>Что я не так делаю?
ЕМ>Боюсь, Вы взялись за нечто уникальное и грандиозное, не изучив прежде матчасть должным образом. И в таких случаях, конечно, бывает, что проблемы решаются по ходу дела, но как бы не получилось у Вас нечто уродливое и глючное.
Ничего уникального или грандиозного. Хочу подменить DLL-ку в UWP приложении. Матчасть да, изучаю по ходу дела. А где почитать про все-все ограничения UWP приложений? И как их можно обойти? Может получится что-то уродливое и глючное, но я это никому отдавать не буду, так что никаких проблем. Лучше по существу вопроса бы подсказали
Re[3]: Не получается переименовать файл в %PF%\WindowsApp
Здравствуйте, пффф, Вы писали:
П>где почитать про все-все ограничения UWP приложений?
В данном случае UWP ни при чем. В Windows учетка Administrator — просто одна из возможных, отнюдь не всесильная. Откройте свойства каталога WindowsApps, любого подкаталога/файла в нем, и посмотрите список разрешений.
Re[4]: Не получается переименовать файл в %PF%\WindowsApp
Здравствуйте, Евгений Музыченко, Вы писали:
П>>где почитать про все-все ограничения UWP приложений?
ЕМ>В данном случае UWP ни при чем. В Windows учетка Administrator — просто одна из возможных, отнюдь не всесильная. Откройте свойства каталога WindowsApps, любого подкаталога/файла в нем, и посмотрите список разрешений.
Я вообще всем дал полный доступ, как для группы "Все", так и отдельно всем пользователям/группам, которые там в списке разрешений указаны. Ещё я зашел на вкладку "Действующие права доступа" и проверил их для текущего пользователя — всё разрешено, никаких запрещений нет
Re[5]: Не получается переименовать файл в %PF%\WindowsApp
Здравствуйте, пффф, Вы писали:
П>Я вообще всем дал полный доступ
Прошу прощения, мозг зацепился за "из-под админа" и "требует права админа".
Там дело явно не только в ACL. Похоже, какой-то системный процесс и/или фильтр ФС отслеживает обращения. Возможно, проще будет не трогать каталоги, и обойтись динамическими средствами (отладочные функции, внедрение в процесс, DLL redirection и т.п.).
Re[6]: Не получается переименовать файл в %PF%\WindowsApp
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Там дело явно не только в ACL. Похоже, какой-то системный процесс и/или фильтр ФС отслеживает обращения.
Угу, похоже на то
ЕМ>Возможно, проще будет не трогать каталоги, и обойтись динамическими средствами
Пробовал, не очень. Момент инициализации приложения не перехватить, я попробовал инжектить DLL с перехватом при помощи Detours нескольких функций, которые скорее всего могут быть вызваны, но то ли детурс не фурычит (или я его нправильно готовлю), то ли всё происходит на старте, и потом функции не вызываются — но мои перехватчики ничего не выдают. Я решил попробовать подсунуть DLL с полной копией всех вызовов, чтобы посмотреть, что и как и в какие моменты вызывается. Но тоже не прокатывает пока
ЕМ>отладочные функции,
Можно тут поподробнее?
ЕМ>внедрение в процесс,
Это делал, не помогло
ЕМ>DLL redirection
Это что за зверь?
ЕМ>и т.п.
Что еще можно попробовать? Любые идеи пригодяться
Re[6]: Не получается переименовать файл в %PF%\WindowsApp
П>>Я вообще всем дал полный доступ
ЕМ>Прошу прощения, мозг зацепился за "из-под админа" и "требует права админа".
ЕМ>Там дело явно не только в ACL. Похоже, какой-то системный процесс и/или фильтр ФС отслеживает обращения. Возможно, проще будет не трогать каталоги, и обойтись динамическими средствами (отладочные функции, внедрение в процесс, DLL redirection и т.п.).
Не, там все-таки ACL. Просто надо смотреть security descriptor программным способом, т.к. UI далеко не все ACE из SACL показывает.
Если включить аудит файлового доступа (например через Global Object Access Auditing), то в windows security log видно, что у процесса нет прав на запись в %PF%\WindowsApp и подкаталоги по причине "Denied by Process Trust Label ACE".
Это тип ACE (SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE) появился в Win8.1 и плохо документирован.
Здравствуйте, m2user, Вы писали:
M>Не, там все-таки ACL. Просто надо смотреть security descriptor программным способом, т.к. UI далеко не все ACE из SACL показывает. M>Если включить аудит файлового доступа (например через Global Object Access Auditing), то в windows security log видно, что у процесса нет прав на запись в %PF%\WindowsApp и подкаталоги по причине "Denied by Process Trust Label ACE". M>Это тип ACE (SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE) появился в Win8.1 и плохо документирован.
Проблемный ACE типа SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE — на каталоге с приложением и некоторых файлах внутри.
На каталоге WindowsApps помимо обычного DACL есть только ACE типа SYSTEM_MANDATORY_LABEL_ACE_TYPE, но его можно при необходимости через icacls поменять (icacls /setintegritylevel medium).
Поэтому можно сделать копию папки с приложением, при этом у копии уже нет проблемного ACE, т.е. можно редактировать все файлы. Оригинальный каталог — удалить или переименовать.
Работоспособность приложения после этой процедуры я не проверял.
Re[9]: Не получается переименовать файл в %PF%\WindowsApp
M>>Проблемный ACE типа SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE — на каталоге с приложением и некоторых файлах внутри.
ЕМ>Чем его можно там увидеть? Не может же такого быть, чтоб никакой готовый софт не показывал его наличия.