我有一个遗留的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时更改所请求的密钥,但我认为这是一种相当极端的方法,所以我想找到更好的方法方式。
也许WOW64注册表重定向内部API可以(ab)用于此?或者可能存在一些比所有核心注册表API函数的API挂钩更少涉及的方法?
提前致谢。