In a previous post, I was discussing the idea of adding more events to Excel by adding a window hook.
Under the hood, the idea is that we can load a DLL in the Excel process simply by transforming that DLL into a COM add-in, which is automatically loaded by Excel.
This post covers the situation of programs that don’t implement an add-in mechanism so loading a DLL into their process requires DLL injection.
The topic of DLL injection has been covered in various other articles , so this post is mainly a summary and a sample of the basic mechanism for DLL injection.
We need to create a DLL that attaches a Windows hook when loaded. We then need to load this DLL through DLL injection in the address space of the target program.
So the basic steps are:
As mentioned in the following post, this is the main idea behind monitoring software such as Spy++ or other profiles.
A very cool implementation was done in: http://easyhook.codeplex.com/