HOOK的应用一般有3个:
(1)本程序内的钩子(一般用处不大)
(2)全局钩子
(3)其他任意指定线程的钩子
由于最近要做一个关于针对指定应用程序的劫持,在网上看了很多资料,大部分是讲全局钩子的。针对特定程序的钩子,讲得要么不清楚,要么没有给详细的代码,当然,鄙人的水平有限。现在,我就把任意指定程序的钩子创建过程,给一个详细的代码。
本文所用的关键函数是:GetWindowThreadProcessId,FindWindow,SetWindowsHookEx
整体上和创建全局钩子类似,但是多了一个获取线程ID的入口
第一步:
创建动态链接库DLL。用VC来创建DLL,创建Windows应用程序,名称为Hook。方法和孙鑫老师第20课讲的一样。
Hook.cpp(没有h头文件)
<pre class="cpp" name="code">#include <windows.h>
HHOOK g_hMouse=NULL;
HHOOK g_hKeyboard=NULL;
#pragma data_seg("MyS