第九章 动态链接库与钩子编程
第9 章
动态链接库与钩子
动态与静态链接库在Windows操作系统环境中,库函数类型主要有两种: 静态链接库( Static Link Library, 即 Lib), 动态链接 库(Dynamic-Link Library, 即DLL)
两种库使用的主要区别是使用静态链接库的应用程序从函 数库中得到所引用的函数的执行代码,把执行代码放进程序 自身的执行文件中, 应用程序在运行时就可以不再需要静态函数库的支持了; 而动态链接库是一种用来为其它可执行文件(包括EXE文 件和其它DLL)提供共享的函数库, 应用程序中需要使用DLL的应用程序,我们可以调用DLL中 的导出函数(imported function),
静态链接库 静态链接库的扩展名为.lib 。 应用程序在运行时就可以不再需要静态函数库的支持, 通常库中存放是常见的数学函数等。 Windows编程主要使用动态链接库,但也有许多是使用 静态链接库。
创建动态链接库工程
新建工程,选择 Win32 Dynamic-Link Library,命名; 单击OK,弹出对话框,三个中任选一项; 打开创建的文件框架并修改、添加导出函数:BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } void ExportFunc(…) // 用户自定义导出函数。
导出函数的使用 修改创建中产生的.h文件,以便函数可被其他模块调用。 装载期间链接:模块像调用本地函数一样调用其他模块的 导出函数。 运行期间的链接:模块使用LoadLibrary或LoadLibraryEx 函数在运行期间加载DLL。 在代码中明确的加载所使用的DLL,使用指针来调用 DLL中的导出函数,使用完毕之后,必须卸载。 例题见注释
Windows钩子 钩子是Windows消息处理机构中的一部分 通过钩子,应用程序可以监视系统中的消息往来 能在消息到达目的窗口过程之前处理某种类型的 消息 Windows系统中含有多种不同类型的钩子 每种类型都提供了一种Windows系统消息处理机制 中不同方面的的通路。(钩子类型取值:见注释文档)
Windows系统钩子链
Windows系统为每一种类型的钩子管理一个钩子链, 钩子链是一个指向特殊的,称为钩子过程的应用程序定 义的回调函数的指针列表。 如果有与某种特定类型钩子相应的消息,Windows系统 把这条消息一个接一个地传给钩子链中的每个钩子过程。 钩子过程的操作取决于钩子的种类,有些类型的钩子只 能监视消息,而另外一些则能够修改或停止他们在链中 的传播,禁止他们到达下一个钩子过程或窗口过程。
钩子的安装与卸载安装
钩子:SetWindowsHookEx( int idHook, // 钩子类型 HOOKPROC lpfn, // 钩子函数地址 … ); 钩子函数: LRESULT CALLBACK HookProc( int nCode, DWORD wParam, DWORD lParam); 卸载钩子:UnhookWindowsHookEx(…)
挂钩(Hook API)
Windows应用程序是建立在API上的,截获API 是一项有用的技术; 目的在于干预程序的执行流程; HOOK API 是用来截获特定进程或系统对某个 API的调用,使得API的执行转向指定代码; 最常见的一种技术是改变目标进程中调用API 函数的代码,使得他们对API的调用改为对用 户自定义函数的调用。
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




