Ошибка 0хс0000005 и другие проблемы с последними обновлениями Microsoft

На прошлой неделе Microsoft в рамках своего традиционного Patch Tuesday выпустила ряд важных обновлений безопасности (обзор обновлений за август 2013 смотри на сайте Microsoft). По результатам установок патчей оказалось, что как минимум в 3 их 8 бюллетеней безопасности являются просто-напросто опасными!

Например, бюллетень MS13-061, который должен устранить уязвимость удаленного выполнения кода в почтовой системе Exchange, вызывает ошибки индексации  почтовых сообщений в почтовых хранилищах.

Бюллетень MS13-066, который описывается, как патч, устраняющий возможность раскрытия информации в серверных службах Active Directory Federation Services (ADFS), после установки может вызвать полный отказ в работе ADFS.

И самым критичной и массовой проблемой, затронувшей множество рядовых пользователей Windows, является обновление  KB2859537 (входит в состав бюллетеня MS13-063). Установка данного обновления в некоторых случаях блокирует запуск почти всех приложений, в том числе различных элементов настройки системы в «Панели управления» и браузера  Internet Explorer. Выглядит проблема так: после установки обновления KB2859537 и перезагрузки системы при попытке запустить практически любое приложение, появляется следующая ошибка: «Ошибка при запуске приложения (0xc0000005). Для выхода из приложения нажмите кнопку «ОК»». Ошибка при запуске приложения (0xc0000005). Для выхода из приложения нажмите кнопку "ОК" в Windows 7

Upd от 11.09.2013. Сентябрьское обновление KB2859537 для Windows 7 x64 также может вызвать появление подобной ошибки. Подробности  в статье: Ошибка 0xc0000005 или опять не запускаются программы после установки обновлений в Windows 7.

Update от 9.10.2013. Октябрьское обновление KB2882822 вызывает аналогичные проблемы. Подробности в этой статье.

Если пробежаться по последним топикам технических ИТ форумов то они буквально пестрят темами типа:

Ошибка при запуске приложения 0хс0000005
Не запускаются программы (ошибка 0xc0000005)
перестали запускаться проги на буке
Не запускаются 32-bit приложения после установки обновления
Помогите! 0xc0000005

Что характерно, большинство тем такого рода, наблюдается в основном в русскоязычном сегменте  Интернета. Проблемы наблюдаются в основном с десктопной Windows 7 и серверной Windows 2008 R2.

Обновление KB2859537 заменяет ряд системных файлов, в том числе ряд файлов ядра и кучу вспомогательных библиотек (http://support.microsoft.com/kb/2859537). В том случае, если ядро модифицировано (а это почти всегда так в различных сборках Windows и в случае использования патчей для нелегальной активации), на некоторых x64 системах установка обновления может вызвать невозможность запуска 32-битных программ  и они аварийно завершаются с ошибкой 0×0000005 / 0xc0000005. По последним данным, ошибке 0xc0000005 подвержены пиратские операционные системы, активированные различными активаторы с собственной копией ядра системы с внесенными изменениями для обхода системы активации

По мнению участника форума  OSZone simplix проблема данного обновления связана с тем, что во многих системах со взломанной активацией используется старая версия ntoskrnl.exe, которая патчером или сборщиком переименовывается в xNtKrnl.exe и прописывается в поле kernel через bcdedit. Необходимо это для того, чтобы система работала с драйвером, эмулирующим SLIC-таблицу. Однако старое ядро не совместимо с новыми файлами подсистемы Wow64, и именно по этой причине на x64 системах перестают запускаться 32-битные программы. Т.е. патч заменяет только официальное ядро, а взломанное остается нетронутым и продолжает работать, но поскольку обновление также содержит и другие компоненты (в т.ч. Wow64), то они просто оказываются несовместимы друг с другом. И вины Microsoft в том, что они не тестировали обновления на ломаных сборках абсолютно никакой – новая версия ядра патчится корректно.

С помощью bcededit можно определить, что если имеется параметр kernel и ссылается он на файл xNtKrnl.exe  (имя старого пропатченного ядра), значит установка обновления с вероятностью 99% вызовет проблемы.

xNtKrnl.exe - пропатченное ядро

Способы устранения ошибки 0xc0000005

Чтобы оперативно устранить ошибку 0xc0000005, необходимо удалить обновление KB2859537 или сделать откат на точку восстановления системы предшествующую его установке (что, впрочем не всегда помогает).

Удалить KB2859537 можно из графического интерфейса GUI или с помощью командной строки.

Удаление KB2859537 с помощью графического интерфейса

  1. Перейдите в Панель управления->Программы и компоненты
  2. Слева нажмите ссылку «Просмотр установленных обновлений»
  3. В списке ранее установленных обновлений найдите KB2859537 (от 14-18 августа 2013)Удалить KB2859537
  4. Щелкните по обновлению правой кнопкой мыши и выберите пункт «Удалить»
  5. После удаления обновления перезагрузите систему

Удаляем обновление KB2859537 из командной строки.

Альтернативный способ удаления данного обновления с помощью командной строки:

  1. Запустите командую строку с правами администратора
  2. Убедимся, что искомое обновление установлено  в системе (методика из статьи «Вывод списка установленных обновлений Windows»), набрав команду
    wmic qfe list | find "KB2859537"
  3. Если команда вернула строку с датой установки обновления, удалим его с помощью команды wusa (автономная утилита по установке/удалению обновлений Windows):
    wusa.exe /uninstall /kb:2859537
  4. Перезагрузите систему

Удаления обновления KB2859537 с помощью загрузочного диска

Примечание! Если описанные выше методики не сработали, или же система отказывается грузиться в обычном режиме (падает в BSOD), можно попробовать удалить обновление из среды восстановления Windows так.
Если под рукой есть диск со средой MSDart 6.5 или выше (ex. Erd Commander),  удалить любое обновление можно, загрузившись с него и воспользовавшись программой Hotfix Uninstall.

Если под рукой имеется только загрузочный/установочный диск с Windows 7/8,  необходимо:

  • Загрузится с него, открыть командную строку и выполнить команду:
    DISM /Image:D:\ /Get-Packages

    , где D – буква диска, на котором установлена система (скорее всего она будет отличаться от назначенных в системе, определить ее можно по этой методике).

  • Найдите и скопируйте имя пакета, начинающееся с Package_for_KB2859537… например, Package_for_KB2859537~31af3253ad364e34~x86~~6.1.1.0)
  • Удалите обновление с помощью DISM:
    DISM /Image:D:\ /Remove-Package /PackageName:Package_for_KB2859537~31af3253ad364e34~x86~~6.1.1.0
  • После удаления апдейте перезагрузите систему, попробуйте загрузиться в нормальном режиме и убедитесь, что KB2859537 отсутствует в списке установленных обновлений в панели управления.

В компании  Microsoft заявляют, что обновление KB2859537 не нацелено на борьбу с пиратскими системами.

Указанные обновления были признаны компанией Microsoft бракованными и отозваны из «Центра обновления». Одной из причин наличия серьезных ошибок в выпущенных обновлениях  публикации Microsoft назвала недостаточно качественное тестирование.


Предыдущая статья Следующая статья


Комментариев: 53 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)