Ошибка ntvdm exe на windows xp

Обновлено: 08.07.2024


Разбираемся

На вики написано что компонент содержится только в 32-битных версиях виндовса:


Также из информации выше мы видим что.. один процесс ntvdm.exe отвечает за выполнение одной дос-программы.

Почему ntvdm.exe грузит процессор? Прерывание INT 16H

Старые досовские программы постоянно обрабатывают прерывание INT 16H, которое ожидает нажатие клавиш даже если пользователь ничего не делает. Это как одна из причин, почему ntvdm.exe грузит ПК.

На самом деле все сложнее, чем я думал

Все дело в том, что:

И что же делать?

Я напишу то, чтобы сделал я в таком случае:

Какими утилитами я советую проверить ПК (название утилиты это ссылка на офф сайт):

Хм, интересную картинку нашел:


Возможно компонент NTVDM можно вполне легально отключить в компонентах. Чтобы открыть: зажимаете Win + R, пишите команду appwiz.cpl, нажимаете ОК > откроется окно, там будет кнопка Включение или отключение компонентов Windows > попробуйте там поискать NTVDM.

Принудительное отключение процесса


Теперь нажимаем кнопку Создать:


И пишем название точки. Советую писать на понятном языке, например:

До отключения ntvdm.exe через Unlocker

Нажали Создать и точка быстренько создалась:



Поэтому снимаем галочки чтобы эта ерундовина не ставилась))


Процесс относится к индексированию, запущен от имени система, вам лично не советую его отключать. Это только в целях эксперимента))


Откроется папка, в ней будет выделен файл:

Нажимаем правой кнопкой по файлу и выбираем пункт Unlocker:


Теперь выбираем Переименовать:


Далее нужно указать имя. Советую указывать так, чтобы сохранилось оригинальное, назовите например так:

В моем случае это будет:


Нажали ОК. Потом еще раз нажали ОК. Результат:


Файл переименован. Теперь он никак не сможет запуститься. Вообще. Тоже самое вам нужно сделать с ntvdm.exe.

У вас при переименовании может потребоваться перезагрузка. Это нормальное явление.

Таким образом вы можете полностью отключить ntvdm.exe, но.. могут ли быть проблемы? В принципе да:

  1. Некоторые проги могут использовать модули в виде досовских программ. Или компоненты, но.. таких программ немного. Соответственно без ntvdm.exe могут быть траблы в этих прогах.
  2. Теоритически.. возможно могут быть проблемы когда вы захотите запустить прогу в режиме совместимости, но это только теоритически.

Вывод

Надеюсь информация помогла. Удачи и добра!

ntvdm.exe что это такое и почему грузит процессор? (NT Virtual DOS Machine) : 5 комментариев

Рад что помог.
Удалить можно. Но вдруг она вам еще пригодится.

2. Переименованные файлы либо удаленные при помощи Unlocker останутся такими же и после удаления Unlocker.

Файлы Windows Executable, такие как ntvdm.exe, используют расширение EXE. Файл считается файлом Win16 EXE (Windows Executable) и впервые был создан компанией Microsoft для пакета ПО Windows 10.

Первая версия ntvdm.exe была выпущена для операционной системы Windows XP 10/25/2001 в составе Windows XP. Последним обновлением версии [v10] для Windows является 10, выпущенное 07/29/2015. Файл ntvdm.exe включен в Windows 10, Windows 8.1 и Windows 8.

Ниже приведены исчерпывающие сведения о файле, инструкции для простого устранения неполадок, возникших с файлом EXE, и список бесплатных загрузок ntvdm.exe для каждой из имеющихся версий файла.




Совместимость с Windows 10, 8, 7, Vista, XP и 2000

Средняя оценка пользователей

Сведения о разработчике и ПО
Программа: Windows 10
Разработчик: Microsoft
Программное обеспечение: Windows
Версия ПО: 10
Сведения о файле
Размер файла (байты): 8960
Дата первоначального файла: 04/14/2008
Дата последнего файла: 03/18/2017
Информация о файле Описание
Размер файла: 8.8 kB
Дата и время изменения файла: 2013:08:22 01:42:34+00:00
Дата и время изменения индексного дескриптора файлов: 2017:11:05 07:04:28+00:00
Тип файла: Win16 EXE
Тип MIME: application/octet-stream

✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.

ntvdm.exe — ошибки выполнения

Ошибки выполнения — это ошибки Windows, возникающие во время «выполнения». Термин «выполнение» говорит сам за себя; имеется в виду, что данные ошибки EXE возникают в момент, когда происходит попытка загрузки файла ntvdm.exe — либо при запуске приложения Windows, либо, в некоторых случаях, во время его работы. Ошибки выполнения являются наиболее распространенной разновидностью ошибки EXE, которая встречается при использовании приложения Windows.

К числу наиболее распространенных ошибок ntvdm.exe относятся:

Не удается запустить программу из-за отсутствия ntvdm.exe на компьютере. Попробуйте переустановить программу, чтобы устранить эту проблему.

Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Поиск причины ошибки ntvdm.exe является ключом к правильному разрешению таких ошибок. Несмотря на то что большинство этих ошибок EXE, влияющих на ntvdm.exe, происходят во время запуска, иногда ошибка выполнения возникает при использовании Windows 10. Причиной этого может быть недостаточное качество программного кода со стороны Microsoft, конфликты с другими приложениями, сторонние плагины или поврежденное и устаревшее оборудование. Кроме того, эти типы ошибок ntvdm.exe могут возникать в тех случаях, если файл был случайно перемещен, удален или поврежден вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.

Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):

Если на этапе 1 не удается устранить ошибку ntvdm.exe, перейдите к шагу 2 ниже.


Шаг 2. Запустите средство проверки системных файлов (System File Checker), чтобы восстановить поврежденный или отсутствующий файл ntvdm.exe.

Средство проверки системных файлов (System File Checker) — это утилита, входящая в состав каждой версии Windows, которая позволяет искать и восстанавливать поврежденные системные файлы. Воспользуйтесь средством SFC для исправления отсутствующих или поврежденных файлов ntvdm.exe (Windows XP, Vista, 7, 8 и 10):

Следует понимать, что это сканирование может занять некоторое время, поэтому необходимо терпеливо отнестись к процессу его выполнения.

Если на этапе 2 также не удается устранить ошибку ntvdm.exe, перейдите к шагу 3 ниже.

Шаг 3. Выполните обновление Windows.


Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла ntvdm.exe. Мы храним полную базу данных файлов ntvdm.exe со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Windows . Чтобы загрузить и правильно заменить файл, выполните следующие действия:

Windows 10: C:\Windows\System32\
Windows 8.1: C:\Windows\System32\
Windows 8: C:\Windows\System32\
Windows XP: C:\WINDOWS\system32\dllcache\
Windows XP: C:\Windows\System32\

Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.

Файл был разработан Microsoft для использования с программным обеспечением Windows. Здесь вы найдете подробную информацию о файле и инструкции, как действовать в случае ошибок, связанных с ntvdm.exe на вашем устройстве. Вы также можете скачать файл ntvdm.exe, совместимый с устройствами Windows 10, Windows 8, Windows XP, Windows 8.1, которые (скорее всего) позволят решить проблему.

For Windows

Совместим с: Windows 10, Windows 8, Windows XP, Windows 8.1

Исправьте ошибки ntvdm.exe

Информация о файле

Основная информация
Имя файла ntvdm.exe
Расширение файла EXE
Тип Executable Application
Описание Windows Executable
Программного обеспечения
программа Windows 10
Программного обеспечения Windows
автор Microsoft
Версия программного обеспечения 10

ntvdm.exe

Наиболее распространенные проблемы с файлом ntvdm.exe

  • ntvdm.exe поврежден
  • ntvdm.exe не может быть расположен
  • Ошибка выполнения - ntvdm.exe
  • Ошибка файла ntvdm.exe
  • Файл ntvdm.exe не может быть загружен. Модуль не найден
  • невозможно зарегистрировать файл ntvdm.exe
  • Файл ntvdm.exe не может быть загружен
  • Файл ntvdm.exe не существует

ntvdm.exe

Не удалось запустить приложение, так как отсутствует файл ntvdm.exe. Переустановите приложение, чтобы решить проблему.

Проблемы, связанные с ntvdm.exe, могут решаться различными способами. Некоторые методы предназначены только для опытных пользователей. Если вы не уверены в своих силах, мы советуем обратиться к специалисту. К исправлению ошибок в файле ntvdm.exe следует подходить с особой осторожностью, поскольку любые ошибки могут привести к нестабильной или некорректно работающей системе. Если у вас есть необходимые навыки, пожалуйста, продолжайте.

Помните, прежде чем предпринимать какие-либо действия, связанные с системными файлами, сделайте резервную копию ваших данных!

Шаг 1.. Сканирование компьютера на наличие вредоносных программ.

Virus Scan

Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом ntvdm.exe или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.

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


Обратная совместимость — вещь хорошая, но использовать ее надо в разумных пределах. Ведь до сих пор в ядре Windows можно найти код, разработанный еще в прошлом веке. Говорить о его высокой безопасности было бы глупо. И мы докажем это на примере трех privilage escalation уязвимостей, прижившихся в подсистеме виртуальной машины DOS

В 1978 году компания Intel выпустила первый процессор семейства х86, модели 8086, который предоставлял довольно ограниченную среду для исполнения 16-битного кода, известную под названием «режим реального времени» (Real mode). Вскоре после этого началась активная разработка программных решений для новой аппаратной платформы, причем как операционных систем, так и работающих в них обычных программ. Система Disk Operating System (DOS) от Microsoft быстро утвердилась в качестве ведущей рабочей среды для десктопных ПК, а приложения под эту ОС создавались и выходили на рынок в течение более десяти лет. В качестве самых известных примеров можно привести Norton Commander, ChiWriter или Quattro Pro. При разработке в 1992 году архитектуры NT для операционной системы Windows, которая использовала преимущества уже более мощного и безопасного защищенного режима (Protected Mode), одним из ключевых решений стало сохранение обратной совместимости с DOS, то есть обеспечение возможности безопасного запуска старых программ в новом графическом окружении.

WARNING

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

NTVDM

Созданный в Windows специальный режим совместимости получился очень функциональным. Из-за того, что он был довольно сложным компонентом как с технической стороны, так и со стороны логики работы, его появление открыло локальным пользователям много новых возможностей проведения атак, направленных на повышение своих прав в операционной системе. В NTVDM уже не раз находили и исправляли проблемы безопасности, но до сих пор в ядре остается много интересных и неисследованных возможностей. В следующем разделе мы детально рассмотрим одну из них — специфичную обработку исключений, возникающих в хост-процессе NTVDM.EXE. Тут, правда, стоит отметить, что любой потенциальный баг, который может обнаружиться в подсистеме совместимости DOS, затронет только 32-битные платформы Windows, так как 64-битные версии системы не поддерживают VDM из-за особенностей реализации режима Long Mode, в котором исполняется 64-битный код на процессорах Intel. В новых операционных системах Windows 8 и 8.1 воздействие потенциальных уязвимостей ядра нивелируется за счет того, что там эта подсистема отключена по умолчанию, а для ее запуска необходимы административные права. Тем не менее эти уязвимости можно успешно задействовать без участия пользователя на системах от Windows XP до Windows 7 32-бит (а на данный момент такие системы предположительно составляют около 50% парка всех десктопных ОС).

Режим реального времени

Поддерживать обратную совместимость с 16-битными приложениями для современного 32-битного окружения очень сложно с технической точки зрения из-за фундаментальных различий в функционировании между реальным и защищенным режимом. Сюда входят и режимы работы процессора, и ширина слов и адресов, и кодирование инструкций, и много других моментов. Иначе говоря, стандартными средствами современных операционных систем запустить устаревшие программы из 80-х не получится. С другой стороны, переключение процессора в реальный режим каждый раз при запуске 16-битной программы тоже не выход, поскольку это лишает смысла базовые установки защищенного режима, такие как разделение прав. Передача управления потенциально недоверенному коду, который работает в практически неограниченной среде исполнения и имеет прямой доступ ко всей периферии компьютера, не только создает потенциальную угрозу безопасности системы, но и лишает операционную систему контроля над компьютером, так как решение о возврате в предыдущий рабочий контекст будет приниматься именно этим старым приложением.

Режим Virtual 8086

Инженеры Intel, которые прекрасно понимали эти и многие другие связанные с обратной совместимостью проблемы, разработали еще один совершенно новый режим исполнения, назвав его Virtual 8086 (V8086), который стал важной составляющей защищенного режима. Основная особенность режима V8086 состоит в том, что для работающего в нем кода он совершенно неотличим от реального режима, но при этом полностью управляется основной операционной системой. Это позволяет запускать старые приложения в 32-битном окружении с сохранением безопасности и без негативных побочных эффектов. Эту технологию можно рассматривать в качестве механизма виртуализации для ПО DOS, в котором операционная система выполняет роль монитора виртуальной машины (Virtual Machine Monitor — VMM). VMM отвечает за создание рабочей среды и обработку критичных и привилегированных инструкций, которые использует гостевое приложение, при этом 16-битный код выполняется в специальном режиме и с нативной скоростью. Типичный, разработанный Intel порядок исполнения для операционной системы, использующей V8086, показан на рис. 1.



Рис. 1. Передача управления операционной системой при выполнении устаревших 16-битных приложений

В случае Microsoft Windows сущность «операционная система» далее распадается на два компонента: ядро и процесс NTVDM.EXE, работающий на уровне пользователя. Поддержка описанной подсистемы имеется на обоих уровнях — некоторые события, происходящие внутри устаревшего ПО, обрабатываются напрямую ядром, в то время как другим требуется некоторая помощь на уровне ring 3 (см. рис. 2). Благодаря тому что исполнение кода старого ПО изолировано в специальный процесс, ядро может легко определить, нуждается ли конкретное событие процессора в отдельной обработке, в зависимости от того, исходит оно от VDM-хоста или нет. В результате большинство процедур уровня ring 0 предоставляют дополнительные функциональные возможности при вызове их из особых процессов; в качестве одного из ярких примеров можно отметить обработчики системных прерываний (trap handlers) для x86 (такие как nt!KiTrap0c, nt!KiTrap0d, nt!KiTrap0e), системные вызовы NT (например, nt!NtVdmControl) и системные вызовы win32k.sys (например,nt!NtUserInitTask). Важно отметить, что, хотя процесс NTVDM.EXE и обрабатывается системой особым образом, он все равно наследует токен безопасности локального пользователя; это, в свою очередь, позволяет атакующему исполнять произвольный код в рамках процесса, используя всего лишь две документированные функции API — OpenProcess и CreateRemoteThread — для того, чтобы воспользоваться гипотетической уязвимостью в тех частях ядра, которые отвечают за поддержку VDM.


Рис. 2. Пример управления выполнением время исполнения устаревших 16-битных приложений в Microsoft Windows

Наконец, нельзя забывать, что NTVDM поддерживает основную часть спецификаций интерфейса защищенного режима DOS (DOS Protected Mode Interface — DPMI), то есть в дополнение к реализации режима Virtual 8086, он также может предоставлять среду исполнения (например, создавать сегменты памяти) и выполнять код защищенного режима. Следовательно, вполне может появиться код с поддержкой обработки 32-битных инструкций в ядре в дополнение к простой 16-битной эмуляции.

CVE-2013-3196 (write-what-where в nt!PushInt)

General Protection Fault



Где собака зарыта

Базовая роль функции обработчика nt!OpcodeINTnn состоит в том, что она извлекает операнд imm8 инструкции, вызвавшей сбой, а дальше вызывает другую внутреннюю процедуру nt!PushInt. Ее основная задача заключается в том, чтобы получить базовый адрес пользовательского ss: сегмента и положить адрес обработчика системных прерываний в стек (в адресном пространстве пользователя), используя полный адрес указателя стека ss:esp. Полученный путем обратного инжиниринга С-код, ответственный за помещение в стек трех 16- или 32-битных слов (в зависимости от гостевого режима исполнения), приведен ниже.

Проблема в реализации состояла в том, что указатель на стек пользовательского пространства (ring 3) никак не проверяется на корректность, вероятно из-за предположения, что он всегда будет указывать на адресное пространство процесса NTVDM.EXE. А это, разумеется, не всегда так, поскольку эксплойт может устанавливать регистр esp на любой произвольный указатель, например на адрес, относящийся к ядру. Таким образом, для задействования уязвимости было достаточно выполнить всего лишь две простые инструкции в контексте виртуальной машины DOS: mov esp, 0xdeadbeef и затем int 0 . Единственные ограничения состояли в том, что и cs: , и ss: должны выбирать сегменты кода и данных в рамках локальной таблицы дескрипторов (LDT — Local Descriptor Table), а аргумент инструкции int должен быть прерыванием уровня ядра (любое значение в диапазоне между 0–255, за исключением последовательности 0x2a–0x2e). Результат запуска двух описанных инструкций на непропатченной Windows 7 SP1 приведен ниже:


Благодаря тому факту, что одна из 32-битных переменных хранится ядром в произвольно выбранном исключении eip, ситуация превращается в простое write-what-where условие с незначительными ограничениями, которыми можно пренебречь (например, что непосредственное значение не может иметь установленным старший бит). Имея в своем распоряжении такую удобную базовую возможность, становится возможным «угнать» управление выполнением (control flow) ядра, переписав один из указателей функций, например широко известный указатель nt!HalDispatchTable+4, вызываемый из пространства пользователя через системный вызов nt!NtQueryIntervalProfile.


Рис. 5. Успешная реализация write-what-where в nt!PushInt

Устранение данной уязвимости реализовано довольно просто и состоит из трех дополнительных инструкций, добавленных в nt!PushInt. Они проверяют, чтобы адрес ss:esp , который должен быть из пространства пользователя, действительно указывал на нижние части адресного пространства (см. рис. 6).



Рис 6. Бинарные различия между первоначальной реализацией nt!PushInt и после патча

CVE-2013-3197 (write-what-where в nt!PushException)



Рис. 7. Граф функции nt!Ki386VdmReflectException

Причина головной боли


Рис. 8. Внутренние структуры пространства пользователя, которые задействуются для возобновления исполнения NTVDM, прерванного исключением

И в этот раз благодаря тому, что одно из записанных в контролируемый адрес значений — это eip ошибки, та же методика использования указателя функции (function pointer exploitation technique) может использоваться для получения полного контроля над компьютером. Правда, из-за ограничений на значение LDT воспользоваться этой уязвимостью можно только на системах начиная с Windows Vista. В обновлении безопасности Microsoft просто вставили два простых блока, которые отвечают за проверку указателя в стеке пространства пользователя для ветвей создания фрейма ловушки и для 16, и для 32 бит.

CVE-2013-3198 (write-what-where в nt!VdmCallStringIoHandlerPushException)


Другими словами, эта техника работает только в том случае, если в системе не установлены альтернативные драйверы на видеокарту, а используется стандартный Microsoft’овский. Переключения между полноэкранным и оконным режимом можно легко добиться, используя документированные вызовы API SetConsoleDisplayMode(CONSOLE_FULLSCREEN_MODE) и SetConsoleDisplayMode(CONSOLE_WINDOWED_MODE).

Источник бед

Итак, возвращаясь к эмулированию инструкций — функция nt!Ki386VdmDispatchStringIo определяет обработчик для эмулируемой операции, используя nt!Ps386GetVdmIoHandler, считывает данные пользователя из памяти по адресу ds:si, если это операция «чтения», и вызывает обработчик I/O и записывает данные в es:di, если это операция «записи». Как ты, наверное, уже догадался, ни один из двух указателей (которые вроде бы берутся из пространства пользователя) не проходит валидацию перед использованием. Не самая лучшая идея, особенно учитывая, что в защищенном режиме сегменты могут иметь 32-битные базовые адреса, так что, как следствие, эта уязвимость позволит нам читать и записывать произвольно выбранные адреса в памяти ядра.
Подводя итог: для успешного использования уязвимости нам надо заставить драйвер VIDEOPRT.SYS зарегистрировать обработчики VGA I/O, переключив консоль VDM в полноэкранный режим, создать и загрузить пользовательские сегменты в cs: и es: (причем базовый адрес последнего сегмента указывает на память ядра для перезаписи), инициализировать регистр di значением 0x0 и dx значением 0x3b0, а потом вызвать инструкцию insb; разумеется, все операции необходимо проводить внутри процесса NTVDM.EXE. Если мы установим базу сегмента es: в 0xaaaaaaaa и запустим эксплойт на непропатченной системе, то должно произойти следующее:

Мысли вслух

Все три уязвимости для повышения привилегий, о которых шла речь в этой статье, были возможны благодаря условию write-what-where, которое возникает в силу того, что предоставляемые пользователем данные не проходят никакой валидации. В других ситуациях уязвимости этого типа для базового образа ядра NT (ntoskrnl.exe) встречаются крайне редко. И хотя Microsoft за последние годы смогла внутренними силами отследить и устранить большинство таких проблем, они каким-то образом упустили код эмуляции ввода/вывода, исключений и инструкций в VDM; скорее всего, из-за того, что инструменты статического анализа, очень эффективные для высокоуровневого кода С и С++, в настоящее время не поддерживают ассемблер или плохо взаимодействуют с ним. Стоит отметить, что возможность использовать эти уязвимости появилась только после небольшого несвязанного изменения в коде входного контроля LDT, которое впервые появилось в Windows Vista. Из-за этого изменения внутренняя функция nt!PspIsDescriptorValid оказалась лишена проверок, связанных с базой и ограничениями ввода. Впрочем, это не более чем удачное совпадение. Реальной причиной, которая лежит в основе этой уязвимости, стали не различия в контроле сегментов, а тот факт, что код эмуляции использовал полные адреса ss:esp, ds:si и es:di в операциях памяти, хотя и одна из ключевых особенностей безопасности для ядра Windows гласит: привилегированный код никогда не должен доверять любым сегментам памяти со стороны пользователя.

Резюмируя

На примере этих трех открытий мы еще раз ясно видим, что многие уязвимости ядра обусловлены существованием кода, написанного чуть ли не в начале 90-х годов. Тогда безопасность не рассматривалась в качестве важного приоритета (в отличие от нашего времени), что приводило к созданию плохого кода, и никто его не пересматривал с точки зрения обеспечения безопасности с тех пор, как он был написан двадцать лет назад. При этом большие участки кода используются и в самых последних версиях Windows, включая новейшие Windows 8.1 и Server 2012. Современный исходный код ядра, который пишется в 2013 году, должен соответствовать руководствам по безопасной разработке и тщательно тестироваться перед выпуском. Поэтому мы считаем, что вместо того, чтобы копаться в новых функциональных элементах, которые были внедрены в последних версиях системы, гораздо эффективнее искать ошибки в тех ключевых компонентах, которые были созданы давным-давно.
Ну и последнее, что стоит отметить, — отключение по умолчанию обратной совместимости с приложениями DOS в Windows 8 было отличным решением Microsoft. Благодаря ему большинство еще не обнаруженных ошибок либо невозможно использовать, либо нет смысла искать, потому что атакующий не получит от их использования достаточных дивидендов. К тому же это решение позволило полностью отключить любые страницы NULL (раньше их наличия требовал хост-процесс VDM), а благодаря этому полностью исчезают либо значительно сокращаются ошибки типа NULL pointer dereference, которые часто встречаются и в ядре, и в драйверах устройств. По общему влиянию на будущие защитные свойства это одно из самых серьезных улучшений со стороны Microsoft за все время. Ну а сейчас вперед — найди свой собственный баг в ядре!

Читайте также: