Я заметил, что происходит интересная вещь, когда вы вводите старую команду mem.exe в командной строке XP:
Оболочка переключается из защищенного режима в реальный режим, как вы можете заметить по изменению имени каталога (и отображаемой структуре памяти). Это делает загрузчик Windows exe или cmd.exe? Есть ли способ переключиться обратно в защищенный режим?
решение1
mem.exe
является 16-битным приложением, перенесенным из 16-битных Windows для совместимости. Таким образом, оно работает в 16-битной VM 1 в 32-битных Windows и отображает память как таковую. (В 64-битных Windows его нет, так как 16-битная VM не включена).
Смещение запроса на отображение короткого имени файла является одним из несоответствий, cmd.exe
вызванных запуском дочернего процесса WoW.
Но cmd.exe
не работает в «реальном режиме», поскольку реального режима не существует для 32- или 64-битных процессов.
1 16-разрядная подсистема Windows-on-Windows использует один из 16-разрядных режимов выполнения процессоров x86/x64 для обеспечения изолированной среды, подобно тому, как VMWare (и др.) делают для размещения полноценной машины.