PDA

Показать полную графическую версию : Как заменить системный файл?


Котяра
19-06-2008, 23:26
Я уже задавал этот вопрос, но я не могу заменить системный файл. Как заменить файлы shell32.dll, msgina.dll и прочие системные файлы? Метод PendingFileRenameOperations и KillBox не помогли.

paulgor
20-06-2008, 08:13
По крайней мере для kbdru.DLL (а он тоже системный) это вот так делается:

надо загрузиться в Safe Mode и в командной строке заменить DLL в двух папках -
в System32 и в System32\dllcache

Если во 2-й папке (это как бы системный бэк-ап) не заменить, то при загрузке система сравнит файлы, увидит, что не совпадает и скопирует DLL из папки dllcache 'убив' таким образом замененный Вами файл...

ackerman2007
20-06-2008, 08:36
ну я предлагаю такой такой метод (собственно он в вистапаках различных используется):
удаляем файл из папки system32\dllcache (выше писалось)
в папке system32 переименовываем нужный файл в .bak. копируем туда модифицированный файл. Windows может ругнуться что файл изменили и т.п., посылаем ее в глубокое отчаяние кнопкой отмена.
до перезагрузки система будет использовать файл .bak, после перезагрузки подхватит .dll и .bak можно будет удалить.

Drongo
20-06-2008, 13:24
А если попробовать загрузиться из-под DOS'a и через оболочку Volkov Commander удалить или переименовать исходные, а на их место скопировать требуемые?! Я правда так делал с explorer.exe, но ничего хорошего не получилось, система не загрузилась. По поводу перечисленныхфайлы shell32.dll, msgina.dll »Не знаю, но попробовать можно.

Котяра
20-06-2008, 15:05
А если попробовать загрузиться из-под DOS'a и через оболочку Volkov Commander »
Файловая система NTFS, так что не подойдет, тем более
Я правда так делал с explorer.exe, но ничего хорошего не получилось, система не загрузилась. »

Котяра
20-06-2008, 15:31
Вроде удалось из консоли:
1. Удалить файл из DLLCACHE
2. Переименовать файл
3. Скопировать новый файл в DLLCACHE
4. Скопировать новый файл в system32
После шагов 2 и 4, возможно, потребуется нажать Отмена и Да.

Заменял, кстати, shell32.dll и msgina.dll на файлы из ShutdownMod (делал на виртуальном ПК)

1ce
20-06-2008, 17:26
Наверняка существует какая-то служба ответственная за сохранность системных файлов...
И наверно можно её на паузу поставить исключительно на время замены, чтоб не было обращений к ресурсам файла...

ackerman2007
20-06-2008, 18:07
ну я же написал как:
удаляем файл из папки system32\dllcache (выше писалось)
в папке system32 переименовываем нужный файл в .bak. копируем туда модифицированный файл. Windows может ругнуться что файл изменили и т.п., посылаем ее в глубокое отчаяние кнопкой отмена.
до перезагрузки система будет использовать файл .bak, после перезагрузки подхватит .dll и .bak можно будет удалить.
подменяет любой файл.

Котяра
20-06-2008, 18:09
Наверняка существует какая-то служба ответственная за сохранность системных файлов...
И наверно можно её на паузу поставить исключительно на время замены, чтоб не было обращений к ресурсам файла... »
Вроде удалось из консоли:
1. Удалить файл из DLLCACHE
2. Переименовать файл
3. Скопировать новый файл в DLLCACHE
4. Скопировать новый файл в system32
После шагов 2 и 4, возможно, потребуется нажать Отмена и Да. »
Службу-то отключать не нужно, просто удаляем файл из dllcache, и служба будет просить диск, нажать "Отмена", а потом скопировать файл в dllcache, чтобы "успокоить" службу.

Название службы: SFC

gora
24-06-2008, 13:17
Как заменить файлы shell32.dll, msgina.dll и прочие системные файлы? »А чем собственно не подходит способ используемый в скрипте из ResPatch (http://forum.oszone.net/thread-86969.html)-a? Работает на "живой" системе, "без шума и пыли", заменяет системные файлы на измененные, прописывает в них контрольную сумму, выводит их из списка зашиты и после перезагрузки в системе новые файлы!




© OSzone.net 2001-2012