У меня есть устаревшее приложение Windows, которое считывает значения из определенного раздела реестра (и его подразделов). Я хотел бы изменить ключ, который он читает, поэтому, когда он открывается, например. HKEY_LOCAL_MACHINE \ SOFTWARE \ Something, он будет прозрачно перенаправлен в HKEY_LOCAL_MACHINE \ SOFTWARE \ Redirected \ Something. Или даже соответствующий ключ в HKEY_CURRENT_USER.
Это идентично тому, что сама Windows использует для виртуализации WOW64 (https://msdn.microsoft.com/en-us/library/windows/desktop/aa384232(v=vs.85).aspx).
Я могу внедрить DLL в целевой процесс, вызвать необходимые API из контекста целевого процесса, так что, возможно, есть какой-то хорошо скрытый системный API, который предоставляет эту функциональность. В настоящее время я думаю, что единственный способ — подключить все соответствующие API-интерфейсы реестра и изменить запрошенные ключи при каждом вызове этих API-интерфейсов, но я считаю, что это довольно экстремальный подход, поэтому я хотел бы найти более эффективные способы.
Может быть, для этого можно использовать (ab) внутренние API перенаправления реестра WOW64? Или, может быть, существует какой-то немного менее привлекательный метод, чем перехват API всех основных функций API реестра?
Заранее спасибо.
Задача ещё не решена.
Других решений пока нет …