先用自己的exe装载含有自己hook代码的dll(可以用loadlibrary,或者静态直接启动装入这个dll)再在自己的exe调用一个SetWindowsHookEx,SetWindowsHookEx可以设定为对所有的mouse hook,而proc参数就是上面dll中的proc.
这样SetWindowsHookEx会在系统所有用到mouse的新启动的进程里都会loadlibrary装入自己的hook dll。
在自己hook dll的Dllmain里可以判断目前的进程是哪个exe,或dll,如果发现是自己想要hook的那个进程.就可以进一步修改这个进程的内存,可以修改它的import table使其在调用系统api时先调用我们的。也可以检索它的内存,找到特定的内部函数,在调用这些函数前先调用我们自己的函数.
这里比较让人吃惊的是,实际上SetWindowsHookEx后,对每个进程实际上系统回自动loadlibrary你自己
的hook dll,导致你的Dllmain每次都会被调用. |