Я пытаюсь заменить shell32.dll в Windows 7, чтобы настроить некоторые значки (я знаю риски, этот вопрос не об этом).
Попытки пока:
1. Я использую Windows 7 Home Premium, которая не поставляется с редактором групповой политики, поэтому я добавил ее с помощью этого метода, и она работает. Затем я следовал этому руководству, чтобы отключить защиту файлов Windows.
Я загрузился в безопасном режиме с командной строкой. Когда в редакторе групповой политики было включено "Не сохранять информацию о зоне во вложенных файлах", я запустил команду копирования и сказал перезаписать shell32.dll в системной папке 32 с помощью моего настроенного shell32.dll, но доступ был отклонен. Я думал, что отключение информации о зоне остановит WFP и позволит мне перезаписать, но это не сработало.
2. Обратите внимание, что я попытался отключить WFP из реестра, перейдя в HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon, как объяснено здесь, но по какой-то причине SFCDisable там вообще не было.
3. Также обратите внимание, что я взял на себя ответственность и предоставил себе полные права администратора для shell32.dll, и он все еще не позволяет мне перезаписать, я думаю, что это WFP, который является сверхзащитным и блокирует мои попытки перезаписи.
4. Я добился небольшого прогресса, запустив привилегированный cmd.exe от имени администратора, мне не было отказано в доступе к shell32.dll, однако я не смог перезаписать его, так как он использовался. Я запустил tasklist /m, чтобы увидеть, какие процессы использовали shell32.dll, и, что удивительно, никто из них не использовал его. Кажется, что shell32.dll вообще не использовался, однако я все еще не мог перезаписать его, поскольку окна продолжали сообщать мне, что он использовался.
5. Как ни странно, мне было разрешено переименовать shell32.dll в системе 32 во что-то другое, а затем скопировать в мой настраиваемый shell32.dll (как обходной путь для перезаписи), но кажется, что Windows автоматически заменила мою пользовательскую DLL на исходную версию - я сразу же после копирования в систему 32 открыл его с помощью Resource Hacker и обнаружил, что все значки, которые я изменил, вернулись обратно. Переименованный оригинал также был все еще рядом с моей копией
6. Удивительно, но даже загрузка из Linux на USB для удаления shell32.dll и копирования в моей собственной версии не работала. Я подозреваю, что Windows обнаружила изменения при загрузке после этого и снова восстановила оригинальный shell32.dll.
Последняя идея:
Могу ли я заменить shell32.dll в system32, а также заменить его везде, где Windows хранит свои резервные копии для восстановления?