- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Windows系统中用VC++实现钩子机制.doc
在Windows系统中用VC++实现钩子机制
摘要:本文 分析 了在FC DLL可供选择,即Regular statically linked to MFC DLL(标准静态链接MFC DLL)、Regular using the shared MFC DLL(标准动态链接MFC DLL)以及Extension MFC DLL(扩展MFC DLL)。第一种DLL在编译时把使用的MFC代码链接到DLL中,执行程序时不需要其他MFC动态链接类库的支持,但体积较大;第二种DLL在运行时动态链接到MFC类库,因而体积较小,但却依赖于MFC动态链接类库的支持;这两种DLL均可被MFC程序和FC类库的扩展,只能被MFC程序使用。
另外,要设立一个全局数据共享数据段,以存贮一些全局变量,保留上次钩子消息事件发生时的状态。
3. ain。只要有进程或线程载入和卸载DLL时,都会调用该函数,其原型是:
BOOL ain(HINSTANCE hinstDLL,D ,LPARAM lparam); //钩子处理函数
extern C bool ain(HINSTANCE hInstance, D ,LPARAM lparam)//钩子处理函
{
if (codelt;0) //若code〈0,则直接调用callnexthookex返回
return CallNextHookEx(hhook, code, , lparam);
if(==_LBUTTONDO_RBUTTONDOouseclickr++;//记录鼠标右键单击次数 }
return CallNextHookEx(hhook, code, ,lparam);
}
extern C bool ouseclickr;}
(5) 修改spy.def程序代码如下:
exports
stophook 2
starthook 1
getresultl 3
getresultr 4
(6) 编译project,生成spy.dll文件和spy.lib文件。
2. 建立使用钩子的 应用 程序
(1) 生成一个单文档的可执行文件(exe)的project。
(2) 修改资源中的主选单,增加一个选单项“监控”,下有三个子选单项,分别为“启动”、“撤销”和“取出”。.L.编辑。
(3) 在project中加入spy.lib文件。
(4) 分别修改“启动”、“撤销”和“取出”选单项的mand响应函数如下:
#include E:\DevStudio\MyProjects\spy\hook.h //路径可不同
void CMainFrame::OnMenuitem32771() //“启动”选单项的响应函数
{ starthook(); }
void CMainFrame::OnMenuitem32772() //“撤销”选单项的响应函数
{ stophook();}
void CMainFrame::OnMenuitem32773() //“取出”选单项的响应函数
{ int resultl=getresultl();
int resultr=getresultr();
char buffer[80];
_hB_OK);
}
编译这个project,并把spy.dll放到生成的可执行文件目录下,便可运行程序。运行时,选择“监控”选单中的“启动”选单项,钩子便开始工作,监视鼠标的活动情况;选择“撤销”选单项,系统便撤销钩子;选择“取出”选单项,程序便报告在监控期间,用户分别单击鼠标左键和右键的次数。
以上程序在.
您可能关注的文档
最近下载
- 关于XX附属医院“十五五”(2026-2030年)中长期发展规划.docx
- 页岩气压裂技术进展.pptx VIP
- 汽车理论精品教学课件:第四章.ppt VIP
- 小红书三美行业2025平台营销通案(生活美容、美发造型、美甲美睫).pptx VIP
- 拖拉机底盘构造与维修教学课件第1-5章.pptx VIP
- 2025年粮食安全考试试题及答案.docx VIP
- 电大一网一《工控系统安全防护》实训一SCADA、DCS与PLC的脆弱性漏洞、安全威胁及安全风险的对比分析实训报告1-实训1 .docx VIP
- 新时代中国特色社会主义思想概论 课件 第八章 发展全过程人民民主.pptx VIP
- 水利工程施工图核查与签发监理实施细则.doc VIP
- 中信期权考试题库及答案.doc VIP
原创力文档


文档评论(0)