Майкрософт раскрыл неожиданную причину краха проводника: виновато не Windows, а сторонняя программа
Ветеран Microsoft Рэймонд Чен (Raymond Chen) поделился историей расследования сбоя Проводника Windows. Окончательный вывод оказался неожиданным: причиной краха была не ошибка в самой Windows, а сторонняя программа удаления, которая использовала неправильное соглашение вызова функций.
Чен, проработавший в команде разработчиков Windows десятилетиями, часто делится подобными техническими историями в своём блоге. На этот раз инцидент начался с аномального роста частоты сбоев Проводника.
После анализа файлов аварийного дампа была обнаружена ключевая зацепка: падала не 64-битная версия Проводника, а 32-битная. В 64-битной Windows Microsoft сохранила 32-битную версию Проводника (в каталоге C:/Windows/SysWOW64) для совместимости. Обычные пользовательские операции её не задействуют — она вызывается только старыми 32-битными приложениями. Поэтому, как отметил Чен, падение 32-битного Проводника почти наверняка означало, что некое стороннее 32-битное приложение взаимодействует с Windows нестандартным образом.
Дальнейшее расследование выявило виновника: программа удаления стороннего ПО. При выполнении операций очистки файлов она использовала неправильное соглашение вызова для извлечения параметров из стека. Из-за постоянных сбоев и повторных попыток она продолжала извлекать параметры из стека, пока указатель стека не переместился в область выполняемого кода вызова. Стек был «съеден», память повреждена, и Проводник рухнул. Чен добавил, что программа оставила после себя такой хаос, что команда Windows решила, будто это ошибка самой Windows.







0 комментариев