- Подробности
- Категория: Web & comp
- Опубликовано 12.09.2013 06:56
В который раз на те же грабли.
В августе у многих юзеров Масдая 7 после автоматического обновления перестали запускаться программы, выдавая ошибку 0хс0000005. Всё дело было в обновлении kb2859537, и в основном связано с нелегальной активацией Виндовс.
Этот момент отлично разобрал участник конференции OSZone simplix, который не понаслышке знаком со сборками Windows, а также является автором полезной программы AntiSMS ( сайт https://antisms.com/) для лечения вирусов и троянов.
Позволю себе процитировать его пост, выделив жирным то, в чем заключается проблема.
Проблема возникает из-за того, что во взломанных системах используется старая версия ntoskrnl.exe, которую патчер (или сборка) переименовывают в xNtKrnl.exe и прописывают в поле kernel через bcdedit. Это нужно для того, чтобы система работала с драйвером, эмулирующим SLIC-таблицу. Старая версия ядра не совместима с новыми файлами подсистемы Wow64, из-за этого в 64-битной системе 32-битные программы перестают запускаться.
Вины Microsoft здесь нет, они просто не тестировали обновления на ломаных сборках. К слову, если пропатчить новую версию ядра, то система будет работать как положено — это означает, что обновление не нацелено на борьбу с пиратскими системами, просто так сложились звёзды.
KB2859537 заменяет массу системных файлов, в том числе файлов ядра. Если оригинальное ядро было модифицировано, его замена может привести к проблемам.
В сентябре- те же *** только в профиль, виновата обнова kb2872339.
Upd. 12-Sep-13. Обновление KB2872339, вышедшее в сентябре, заменяет KB2859537, т.е. содержит более новые версии файлов ядра. Его установка может привести к точно таким же проблемам
Upd. 09-Oct-13. Обновление KB2882822, вышедшее в октябре, добавляет поддержку интерфейса ITraceRelogger. Поскольку оно заменяет файлы ядра, его установка может привести к точно таким же проблемам.
Лечится оно удалением таких обнов; ниже- пошаговая инструкция с сентябрьским примером.
Вариант1. Идём в Панель управления, в Панели находим Программы и компоненты, в них слева вверху ищем ссылочку на Просмотр установленных обновлений, ищем (кропотливо своими глазами либо через строку поиска, что в верхнем правом углу) соответствующее обновление и жмём на кнопку Удалить, что появляется сверху при выделении соответствующей строки. Ничего страшного не происходит, и после перезагрузки системы (соглашаемся на предложение масдая) снова всё работает.
Вариант2. Запускаем командную строку с правами администратора (заходим в систему с администраторскими правами, жмём Пуск, в нижней строке Найти программы и файлы вбиваем cmd.exe; либо жмём кнопки win+R), вбиваем wusa.exe /uninstall /kb:2872339 и перегружаемся.
Вариант3. Тяжёлые случаи, когда описанные выше методики не сработали, или же система отказывается грузиться в обычном режиме (падает в BSOD), можно попробовать удалить обновление из среды восстановления Windows.
Если под рукой есть диск со средой MSDart 6.5 или выше (ex. Erd Commander), удалить любое обновление можно, загрузившись с него и воспользовавшись программой Hotfix Uninstall.
Если под рукой имеется только загрузочный/установочный диск с Windows 7, необходимо:
Загрузиться с него, открыть командную строку и выполнить команду:
DISM /Image:D:\ /Get-Packages
, где D – буква диска, на котором установлена система (скорее всего она будет отличаться от назначенных в системе, определить ее можно по этой методике).
Найдите и скопируйте имя пакета, начинающееся с Package_for_KB2872339 … например, Package_for_KB2859537~31af3253ad364e34~x86~~6.1.1.0)
Удалите обновление с помощью DISM:
DISM /Image:D:\ /Remove-Package /PackageName:Package_for_KB2872339~31af3253ad364e34~x86~~6.1.1.0
После удаления апдейте перезагрузите систему, попробуйте загрузиться в нормальном режиме и убедитесь, что KB2859537 отсутствует в списке установленных обновлений в панели управления.
Кроме этого, написаны разные патчи для обновлений на ломаные ОСи, скачиваем и устанавливаем.
simplix:
Сделал фикс этой проблемы. Это 64-битная программа, которая обновляет старое ядро до актуальной версии (независимо от версии нового ядра, но только для файлов из KB2859537). Данное исправление не имеет отношения к активаторам, т. е. на оригинальной системе ничего не сделает, а на сборках ничего в систему не пропишет, только обновит ядро xNtKrnl.exe и не больше. Это лучшее решение на данный момент после установки KB2859537 на патченную систему, так как вместе с устранением ошибки 0xc0000005 закрывает все уязвимости, а если обновление удалить — уязвимости останутся. Проверено на Win7 SP1 x64 и Win2008 SP1 R2 x64.
https://antisms.com/KB2859537_Fix.exe
https://antisms.com/KB2872339_Fix.exe
KB2872339_Fix.exe полностью заменяет KB2859537_Fix.exe и исправляет ошибку 0xc0000005 после установки любого из обновлений
По материалам источника и источника2