Категория: 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