Помилка 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). Для виходу з програми натисніть кнопку« ОК »".

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% призведе до проблем.

Способи усунення помилки 0xc0000005

Щоб оперативно вирішити проблему 0xc0000005, необхідно видалити оновлення KB2859537 або зробити відкат на точку відновлення системи попередню його установці (що, втім не завжди допомагає).

Видалити KB2859537 можна з графічного інтерфейсу GUI або за допомогою командного рядка.

Видалення KB2859537 за допомогою графічного інтерфейсу

  1. перейдіть в Панель управління-> Програми та засоби
  2. Зліва натисніть посилання "Перегляд встановлених оновлень"
  3. У списку раніше встановлених оновлень знайдіть KB2859537 (Від 14-18 серпня 2013)
  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 назвала недостатньо якісне тестування.