Forum Moderators: open
I need to patch two functions in Kernel32.DLL but I need the patch to apply to a single process - this is absolutely essential since it could adversely affect other programs. It seems likely to me that this is possible for development and testing but I have been unable to find useful information on how to create and install any sort of hotpatch.
For my own purposes, I think I may be able to manage using non-standard methods, but a single-process hotpatch would be enormously useful to other programmers that have been wrestling with the same problem (and there are a lot out there).
Since installing hotpatches is a System Admin job, I'm hoping someone can point me in the right direction.
Kaled.
What you have to do is create a stub DLL for your functions and then do DLL Injection into the target API.
You can find a good example of DLL Injection [software.intel.com] on Intel's site.
Microsoft released a new technology with later versions of XP (and Vista) that allows DLLs to be patched without restarting. This involved allocating space at the start of every function for a jump to be installed (that much I understand and am using) but also it seems to patch the DLLs themselves (something I don't want to do).
So far, I haven't managed to get my modifications to work (currently baffled) and I can manage without the clever hotpatching technology, but, assuming I can get my code to work, other programmers might find a signed hotpatch solution to this problem very useful.
Kaled.