Что означает код BSOD 252 (ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY)?

 
Предыдущий Следующий
RECURSIVE_MACHINE_CHECK DIRTY_NOWRITE_PAGES_CONGESTION

ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

Нарушение разрешения выполнения NX/DEP для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY — код bug check 0x000000FC. Поток управления достиг виртуального адреса, который memory manager не разрешает выполнять. Типичные причины: повреждённый function pointer, use-after-free, попытка code injection, неверный driver trampoline или память с неправильными protections.

Как читать дамп ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

  • При наличии данных декодируйте faulting instruction pointer и состояние PTE или VAD.
  • Стек мог быть повреждён, поскольку управление уже прошло через плохую память.
  • Это более конкретное свидетельство, чем общий access violation: отказало именно разрешение execute.

Что проверить для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

  • В WinDbg исследуйте faulting address, pool tag, call stack и список загруженных модулей.
  • Для подозреваемых драйверов включите Driver Verifier, Special Pool и проверки code integrity.
  • Проверьте драйверы, записывающие executable stubs, перехватывающие функции или неправильно использующие MDL и защиты страниц.

Ссылки для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

Данные дампа для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

Для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY сохраните полный дамп, четыре параметра bug check, точную сборку Windows, список загруженных модулей и временную шкалу событий непосредственно перед остановкой. AllStat описывает состояние как «An attempt was made to execute non-executable memory.»; эта фраза определяет класс сбоя, а параметры и стек — конкретный объект, драйвер, процессор или экземпляр подсистемы.

Порядок анализа для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

  • Запустите WinDbg !analyze -v, затем разберите документированное значение каждого параметра ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY, а не полагайтесь только на строку probably-caused-by.
  • Для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY найдите самое раннее аномальное событие: обновление драйвера, изменение прошивки, сброс устройства, ошибку хранилища, отчёт Verifier, исчерпание ресурсов или зависание приложения, связанное с attempted / execute / of / noexecute / memory.
  • Для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY сохраните в перечне модулей сторонние фильтры, драйверы безопасности, хранилища, графики и виртуализации; удаление данных до анализа дампа может скрыть ответственный путь.

Не перезагружайте многократно систему с ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY до сохранения дампа и журналов событий. Восстановление должно следовать компоненту, указанному стеком и параметрами, а не только символическому имени stop-кода.

Данные дампа для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

Для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY сохраните полный дамп, четыре параметра bug check, точную сборку Windows, список загруженных модулей и временную шкалу событий непосредственно перед остановкой. AllStat описывает состояние как «An attempt was made to execute non-executable memory.»; эта фраза определяет класс сбоя, а параметры и стек — конкретный объект, драйвер, процессор или экземпляр подсистемы.

Порядок анализа для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

  • Запустите WinDbg !analyze -v, затем разберите документированное значение каждого параметра ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY, а не полагайтесь только на строку probably-caused-by.
  • Для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY найдите самое раннее аномальное событие: обновление драйвера, изменение прошивки, сброс устройства, ошибку хранилища, отчёт Verifier, исчерпание ресурсов или зависание приложения, связанное с attempted / execute / of / noexecute / memory.
  • Для ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY сохраните в перечне модулей сторонние фильтры, драйверы безопасности, хранилища, графики и виртуализации; удаление данных до анализа дампа может скрыть ответственный путь.

Не перезагружайте многократно систему с ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY до сохранения дампа и журналов событий. Восстановление должно следовать компоненту, указанному стеком и параметрами, а не только символическому имени stop-кода.


Нужно найти другой код? Найти другой код состояния или ошибки.