Не запускаются программы (ошибка 0xc0000005) после установки обновления KB2859537
13 августа Microsoft выпустила обновление KB2859537, и форумы запестрели мольбами о помощи – у людей перестали запускаться программы. Из этой экспресс-записи вы узнаете, как исправить проблему, почему она возникла и как избежать подобных ужасов в будущем.
----------------------<cut>----------------------
Назначение обновления 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 здесь нет, они просто не тестировали обновления на ломаных сборках. К слову, если пропатчить новую версию ядра, то система будет работать как положено — это означает, что обновление не нацелено на борьбу с пиратскими системами, просто так сложились звёзды.
Кстати, simplix ранее предупреждал читателей блога о возможных проблемах г-сборок, в которых заменяются ресурсы.
Как исправить проблему
Если у вас есть основания полагать, что применение обновления на вашей системе может создать проблему, логично не устанавливать обновление. Правда, при этом вы останетесь с незакрытой уязвимостью ядра.
Оба метода исправления сводятся к откату изменений.
Удаление обновления KB2859537
В командной строке, запущенной с правами администратора, выполните:
wusa.exe /uninstall /kb:2859537
Утилита wusa.exe предназначена для установки и удаления обновлений Windows. Запустите ее с ключом /?, чтобы узнать больше.
Конечно, можно сделать то же самое в графическом интерфейсе, поискав в панели управления фразу
просмотр установленных обновлений.
Как не допустить возникновения проблемы в будущем
Поняв причину неурядиц, нетрудно догадаться, как их избежать.
Обеспечьте защиту от вирусов
Буквально на этой неделе я открыл в блоге обсуждение на тему того, можно ли работать в Windows без антивируса!
Избегайте г-сборок и активаторов
Надеюсь, вы оцените точность формулировки :) Обязательная ссылка: Super Mega Zver Black eXtreme 2013 Edition.
А вы пострадали от обновления KB2859537?
Не думаю, что среди читателей блога много пострадавших, но все же интересно! Напишите в комментариях, столкнулись ли вы с проблемой и на каких ПК.
Репост отсюда