- 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 API拦截技术
摘要:讲述了Windows API拦截的关键技术和方法,重点讲述了dll的注入技术和API拦截技术,并对各种技术进行了优缺点分析。
关键词:API;拦截
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)27-1920-03
Windows API Hooking Method
SHI Yong-lin,PAN Jin,LI Guo-Peng
(Department one of Xian Communication Institute,Xian 710016,China)
Abstract:This paper give a detail explanation of how to Intercepting Win32 API,its main concern is the way to inject dll into processs space and API hooking.It also tell the strong and weak point of the different methods.
Key words:API;hooking
Windows下API(应用程序编程接口,实际上就是Windows系统调用)的拦截是个很有用的技术,现在很多商用的系统都用到了这种技术,如屏幕取词,内码转化,屏幕翻译,中文平台等等都涉及到了此项技术。比如大家熟悉的即时翻译软件,就是靠拦截TextOut()或ExtTextOut()这两个系统API调用实现的,在操作系统用这两个函数输出文本之前,通过拦截这两个调用,把传递给这两个调用的的英文替换成中文,然后再调用原来的API输出,从而达到即时翻译的目的。可以说,掌握了这种技术,从某种意义上讲就可以控制或改变操作系统或其他软件的功能,这也是许多游戏外挂等常用的技术。而且这种技术也被许多病毒和木马等利用,从而达到破坏系统和感染程序的目的,当然现在的反病毒软件也多用到此技术。
1 Windows API拦截技术概述
Windows API拦截的主要目的是在其他应用程序调用API之前将其拦截,由拦截者先处理传递的参数数据,然后决定是否再调用原来的API。比如API
BOOL TextOutA( HDC hdc, int nXStart,int nYStart,LPCTSTR lpString, int cbString);
在其他程序调用这个API之前,拦截程序可以先捕获这个调用,先对参数等进行处理,比如将cbString翻译为中文等,然后再调用原来的TextOutA进行文本输出,这样输出的文本就变成中文了。
API拦截的原理很简单,但是要实现可靠的拦截则需要很多工作要做,首先需要把替换被拦截API的代码注入到目标进程中,这些代码一般是以动态链接库(DLL)的形式存在的,然后修改目标进程执行代码,使其在调用被拦截API之前先调用我们的替代代码。这个过程的示意图如图1所示。
一般拦截程序至少需要两个部分,一个是管理服务器(Management server),它的主要工作是拦截DLL的注入工作,并管理DLL的工作状态,接收DLL发回的处理消息等;另一个是拦截DLL,它主要包含拦截代码以及代码注入和API拦截的一些辅助代码。
总结起来API拦截主要有以下三点工作要做。
1) 要决定拦截哪些进程的API,如果是拦截个别进程的API,那么只需要在这个进程中插入拦截DLL,否则则需要在系统的所有进程中插入拦截DLL。
2) 决定采用哪种DLL注入技术。DLL注入技术有多种,但最常用的就两种,一种是windows全局钩子技术,另外一种是利用CreateRemoteThread() API来进行。我们将在第二节进行重点阐述。
3) 决定采用哪种API拦截机制。这也有多种技术可用,可以在内核层(kernel level)中进行,也可以在用户层(user level)中进行。我们将在第三节对这个问题进行深入阐述。
2 DLL注入技术
代码注入技术分为动态代码注入技术和静态代码注入技术,动态代码注入技术就是在进程启动后或在进程启动时在进程的运行空间中注入代码的技术,而静态注入技术就是在PE格式的.exe文件中插入代码。静态注入技术是病毒感染文件的常用方法,在文献[1]中有详细的叙述。动态注入技术也分为直接代码注入技术和以dll形式的注入技术,直接代码注入技术是利用VirtualAllocEx和CreateRemoteThread两个API来进行的函数级代码注入技术,可以采用汇编的
您可能关注的文档
- SQL注入攻击及其防范检测技术的研究.doc
- SQL注入攻击与防护措施研究.doc
- SQL注入技术的研究.doc
- SQL注入式攻击分析.doc
- SSL协议分析及实现.doc
- Stiquito在机器人技术和嵌入式系统教学中的应用.doc
- Struts+Hibernate框架模型在媒体资源库中的应用.doc
- Struts2框架技术的研究与分析.doc
- Struts技术在邮政速递平台系统中的应用.doc
- SVM算法及其在多类字母图象识别中的应用.doc
- Windows CE操作系统安全机制综述.doc
- Windows 7下快速查看无线网络密码等.doc
- Windows Embedded CE下的GPRS互联网接入实现.doc
- Windows Mobile上的流式音频处理.doc
- Windows Presentation Foundations的项目部署和性能优化.doc
- Windows Server 2003下SYN Flood攻击防御的一种方法.doc
- Windows Server 2008低安全级别下组策略的安全设置.doc
- Windows XP 系统下网络应用问题解决方法.doc
- Windows XP提速有高招.doc
- Windows编程课实践教学探讨.doc
最近下载
- 房产税城镇土地使用税政策讲解.pdf VIP
- 《弟子规正版全文-带拼音-完善打印版》.docx VIP
- 新大学日语阅读与写作1东娜练习答案及译文.pptx
- 第19课 法国大革命和拿破仑帝国 课件(共33张PPT).pptx VIP
- 施工现场节假日前安全检查表.doc VIP
- 500kV龙昌Ⅰ、Ⅱ号线直线塔绝缘子单串改双串施工方案.pdf VIP
- 结构优化的群体智能优化算法研究.pdf VIP
- 新视野大学英语(第四版)读写教程1(思政智慧版)课件 B1U1 Section A Fresh start.pptx VIP
- 北京-407EV-标准版-BJ5030XXYVRRC-BEV-407EV纯电动汽车产品使用说明书.pdf VIP
- GB50666混凝土结构工程施工规范.pdf VIP
文档评论(0)