Открытие %SystemRoot % System32 calc.exe из 32-битного процесса перенаправления в другой файл. Что, почему и как?

StackOverflow https://stackoverflow.com/questions/5822113

Вопрос

В настоящее время я пишу некоторый тестовый код в C ++, который связывается с файлами PE, чтобы понять структуру формата файлов. Мой проект собирается компилировать до 64 бит. В моем коде я открываю %SystemRoot % System32 calc.exe и прочитал структуры image_dos_header и image_nt_headers. В то же время у меня есть тот же Calc.exe, открытый в блокноте ++ с плагином Hex Editor. Я сравнил значения, которые читает мой код с блокнотом ++ и заметил, что они отличаются. Я скопировал Calc.exe от System32 до C: temp calc.exe, и теперь значения совпадают.

Notepad ++, по -видимому, является 32 -битным приложением (не проверял файл PE, но, поскольку он установлен для программных файлов (x86) по умолчанию, это, кажется, безопасное предположение).

Это Winsxs на работе? Или что еще это вызывает? А какой файл фактически подается на 32-разрядные приложения Открытие %SystemRoot % System32 CALC.EXE?

Просто любопытно. Заранее спасибо за любой свет.

Это было полезно?

Решение

Да, это вау -перенаправление. Вы увидите, что в C: Windows Syswow64 есть Calc.exe. Это файл, который открывается, когда вы используете %SystemRoot % System32 CALC.EXE.

Это может быть временно отключено, чтобы получить доступ к 64-битной версии файла с помощью Wow64disablewow64fsredirection

Более подробную информацию можно найти в File System Redirector

Другие советы

Если я хорошо помню, когда 32 -битные приложения пытаются открыть Система32 каталог, автоматически перенаправляется на Syswow64 режиссер

Отключение перенаправления WOWF не является ненужным, а иногда даже не является вариантом (например, когда вы пытаетесь получить блокнот ++ для открытия файлов в каталоге System32). Вы можете использовать виртуальный каталог %Windir % sysnative вместо %Windir % System32 (вы не увидите его в Explorer, но вы можете ввести его в адресной панели)

WOW64 реализован в трех DLL: WOW64.DLL, WOW64CPU.DLL и WOW64WIN.DLL (и 32-битный NTDLL). Перераспределение (среди прочего) реализовано в WOW64.dll, процедуры эмуляции / вспомогательных процессоров в WOW64CPU.DLL, а WOW64WIN.DLL содержит Thunks для Win32K.SYS (драйвер режима ядра, ответственный за графический интерфейс Windows).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top