16 августа 2013 в 10:20

Администрирование → Решение проблемы после обновления Windows 7 x64 от 13.08.2013

Ранее в этом посте уже было описано как избавляться от проблемы, но не было описано что к чему. Чтобы разъяснить всю суть проблемы на пальцах, я решил еще раз коснуться этой темы.
Весь кипишь начался из-за обновления KB2859537, а именно после установки обновления на не лицензионные Windows 7. Это обновление не было создано для борьбы с «пиратами», оно просто исправляло четыре уязвимости в ядре Windows, которые позволяли несанкционированно повышать права.

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

Суть проблемы

Проблема возникает из-за переименованного патчером или сборщиком ОС старой версии файла ядра ntoskrnl.exe в xNtKrnl.exe и прописывают ее в kernel через bcdedit. И так как старое ядро не совместимо с новыми файлами подсистемы Wow64, то в нашей системе (х64) не запускаются 32-битные программы. В лицензионной же версии Windows 7 x64 все работает нормально, так как в нем используется новое ядро. Так что делаем выводы на счет борьбы Мелкомягких с «пиратством».

Решения проблемы

Способ первый: установить лицензию (как-никак антипиратский закон принят)
Способ второй (для плохих парней): так как у меня не получилось удалить обновления, как это было описано в выше указанном посте, то я сделал это следующим методом:
Запускаем cmd.exe с правами администратора, прописываем следующую строку:
wusa.exe /uninstall /kb:2859537

жмем «Enter» и перезагружаемся.