Не запускаются программы (ошибка 0xc0000005) после установки обновления KB2859537 kb2862772


13 августа Microsoft выпустила обновление KB2859537, и форумы запестрели мольбами о помощи – у людей перестали запускаться программы.

Из этой экспресс-записи вы узнаете как исправить проблему и почему она возникла.

Назначение обновления KB2859537

Обновление KB2859537 было призвано исправить четыре уязвимости в ядре Windows, позволяющие несанкционированное повышение прав. Первая уязвимость позволяла загрузить DLL в процесс, обходя механизм защиты ASLR, призванный снизить риск эксплуатации уязвимостей.

Три остальные уязвимости связаны с ошибками в проверке адресов ядром Windows, что приводит к повреждению памяти и позволяет запустить произвольный код в режиме ядра. После этого повышение прав уже не проблема. Технические подробности доступны в бюллетене безопасности
MS13-063.

Почему возникла проблема и в чем она заключается

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

У такой модификации есть две наиболее вероятные причины.

Вредоносные программы. Это не первый случай, когда обновление ядра выявляет наличие проблем в системе – так, 3.5 года назад случайно обнаружился руткит Alureon.

Нелегальная активация. Этот момент отлично разобрал участник конференции OSZone
simplix, который не понаслышке знаком со сборками Windows, а также является автором полезной программы AntiSMS для лечения вирусов и троянов.

Позволю себе процитировать
его пост в форуме, выделив жирным то, в чем заключается проблема:

        "Проблема возникает из-за того, что во взломанных системах используется старая версия ntoskrnl.exe, которую патчер (или сборка) переименовывают в xNtKrnl.exe и прописывают в поле kernel через bcdedit. Это нужно для того, чтобы система работала с драйвером, эмулирующим SLIC-таблицу. Старая версия ядра не совместима с новыми файлами подсистемы Wow64, из-за этого в 64-битной системе 32-битные программы перестают запускаться. Вины Microsoft здесь нет, они просто не тестировали обновления на ломаных сборках. К слову, если пропатчить новую версию ядра, то система будет работать как положено — это означает, что обновление не нацелено на борьбу с пиратскими системами, просто так сложились звёзды."

Возможны и другие причины — Microsoft в настоящее время исследует их.

Как исправить проблему

Если у вас есть основания полагать, что применение обновления на вашей системе может создать проблему, логично не устанавливать обновление. Правда, при этом вы останетесь с незакрытой уязвимостью ядра.

Оба метода исправления сводятся к откату изменений.

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

В командной строке, запущенной с правами администратора, выполните:

 wusa.exe /uninstall /kb:2859537

или

wusa.exe /uninstall /kb:2862772

Утилита wusa.exe предназначена для установки и удаления обновлений Windows. Запустите ее с ключом /?, чтобы узнать больше.

Откат к точке восстановления системы

Запустите восстановление системы и откатитесь к точке до возникновения проблемы. Если не получается или система не загружается, войдите в среду восстановления Windows 7 или Windows 8 и выполните восстановление системы оттуда. И да, эта ситуацию действительно спасает откат.

Удаление обновления KB2859537, kb2862772 из среды восстановления с помощью DISM

Этот более сложный вариант имеет смысл применять только в том случае, если первыми двумя способами удалить обновление не удалось.
       1. Загрузитесь в среду восстановления Windows 7 или Windows 8.
       2. Запустите командную строку и определите букву диска, на котором установлена Windows.
       3. В командной строке выполните:

  DISM /Image:D:\ /Get-Packages


где D — буква диска с системой, которую вы определили на предыдущем шаге.
      4. В результатах команды найдите пакет, содержащий в названии KB2859537. На рисунке имя пакета показано исключительно для примера.

Увеличить рисунок

       5. Выделите имя пакета левой кнопкой мыши и нажмите правую кнопку мыши, чтобы скопировать его в буфер обмена.
       6. В командной строке наберите:

                 DISM /Image:D:\ /Remove-Package /PackageName:

          и нажмите правую кнопку мыши, чтобы вставить имя пакета.                     Должна получиться примерно такая команда:

DISM /Image:D:\ /Remove-Package /PackageName:Package_for_KB2859537~31bf3856ad364e35~x86~~6.1.1.3

       7. Нажмите Enter, чтобы выполнить команду и удалить пакет.

Примечание. В случае успешного удаления, KB2859537 исчезнет из списка установленных обновлений в панели управления. Однако в журнале установленных обновлений оно будет присутствовать, поскольку установка производилась.

 

 

 

 

 

 

 

 

 

 

 

 

Теги:

Комментарии:

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

avatar