Hook技术及其应用 Hook技术及其应用

Hook技术及其应用

  • 期刊名字:科技资讯
  • 文件大小:230kb
  • 论文作者:赵慧然,石磊
  • 作者单位:哈尔滨工程大学计算机科学与技术学院,黑龙江大学
  • 更新时间:2020-06-12
  • 下载次数:
论文简介

科技资讯3成ao1wnoT技术Hok技术及其应用赵慧然1石磊2(1.哈尔滨工程大学计算机科学与技术学院2.黑龙江大学)摘要∷计算机监控系统有时需要将用户对操作系统旳交互信息进行记录,wησw操作系统提供的卜ok技术就能实现这个功能,本文介绍了wndo5平台下钩子函数的特点及其关键技术,并通过日志钩子函数来实现对键盘击键信息的记录,给出实现过程。关键字:Hok函数日志钩子中图分类号:F224-39文献标识码:A基于 Wi ndows的操作系统是事件驱动的(Eveηt-消息,监视窗口的打开关闭以及实现记录宏等等,应用灵活,dr i ven),即消息驱动的,应用程序所采取的任何动作都依赖功能强大。于它所获得的消息类型及其内容; W dowe操作系统提供了种机制即钩子(Hook),通过它应用程序可以监视系统中的1.Hbok函数的工作原理消息传递并能够在他们到达目标窗口之前对其进行处理。这可W dowe操作系统对系统输入的处理过程是:系统监视键盘以帮助应用程序实现某些特殊目的,如控制键盘或鼠标的输入和鼠标动作并把这些动作以消息的形式传送绐对应的应用程序,安装便捷:一般在网络建设中,施工周期最长、对周边现,其中以无线网卡最为普遍,使用最多。无线局域网的关环境影响最大的,就是网络布线施工工程。而无线局域网最大键技术,除了红外传输技术、扩频技术、网同步技术外还有的优势就是免去或减少了网络布线的工作量,一般只要安装些其他技术,如:调制技术、加解扰技术、无线分集接收个或多个接入点AP( Access poi nt)设备,就可建立覆盖整个建技术、功率控制技术和节能技术。筑或地区的局域网络。使用灵活:在有线网络中,网络设备的安放位置受网络信5.无线局域网的应用息点位置的限制。而一旦无线局域网建成后,在无线网的信号基于无线局域网具有的诸多优点,它可广泛应用于下列领覆盖区域内任何一个位置都可以接入网络域:接入网络信息系统:电子邮件、文件传输和终端仿真经济节约:由于有线网络缺少灵活性,这就要求网络规划者难以布线的环境:老建筑、布线困难或昂贵的露天区域、城尽可能地考虑未来发展的需要,这就往往导致预设大量利用率较低市建筑群、校园和工厂;频繁变化的环境:频繁更换工作地的信息点。而一旦网络的发展超出了设计规划,又要花费较多费用点和改变位置的零售商、生产商,以及野外勘测、试验、军进行网络改造,而无线局域网可以避免或减少以上情况的发生事、公安和银行等;使用便携式计算机等可移动设备进行快速易于扩展:无线局域网有多种配置方式,能够根据需要灵网络连接;用于远距离信息的传输:如在林区进行火灾、病活选择。它能够胜仼从只有几个用户的小型局域网到上千用户虫害等信息的传输;公安交通管理部门进行交通管理等;专门的大型网络,并能提供像“漫游( Roam ng)”等有线网络无工程或高峰时间所需的暂时局域网:学校、商业展览等人员流法提供的特性。动较强的地方;利用无线局域网进行信息的交流;零售商、空运和航运公司高峰时间所需的额外工作站等;流动工作者可得4.无线局域网的结构到信息的区域:需要在医院、零售商店或办公室区域流动时得根据不同局域网的应用环境与需求的不同,无线局域网可到信息的医生、护土、零售商、白领工作者;办公室和家庭采取不同的网络结构来实现互联。常用的有如下几种办公室(SOHO)用户,以及需要方便快捷地安装小型网络4.1网桥连接型:不同的局域网之间互联时,由于物理上的用户。的原因,若采取有线方式不方便,则可利用无线网桥的方式实现二者的点对点连接,无线网桥不仅提供二者之间的物理与数6.结束语据链路层的连接,还为两个网的用户提供较高层的路由与协议无线网络的出现就是为了解决有线网络无法克服的困难转换虽然无线网络有诸多优势,但与有线网络相比,也有很多不4.2基站接入型:当采用移动蜂窝通信网接入方式组建无线足。无线网络速率较慢、价格较高,因而主要面向有特定需局域网时,各站点之间的通信是通过基站接入、数据交换方式求的用户。目前无线局域网还不能完全脱离有线网络,还只是来实现互联的。各移动站不仅可以通过交换中心自行组网,还有线网络的补充,而不是替换。但也应该看到,近年来,随可以通过广域网与远地站点组建自己的工作网络着相关产品的价格下降,相应软件也逐渐成熟。此外,无线4.3HUB接入型:利用无线Hub可以组建星型结构的无线局域网已能够通过与广域网相结合的形式提供移动互联网的多媒局域网,具有与有线Hub组网方式相类似的优点。在该结构体业务。相信在未来,无线局域网将以它的高速传输能力和灵基础上的wAN,可采用类似于交换型以太网的工作方式,要活性发挥更加重要的作用。求Hub具有简单的网内交换功能4.4无中心结构:要求网中任意两个站点均可直接通信参考文献此结构的无线局域网一般使用公用广播信道,MAC层采用[]王莹,张萍无线资源管理北京邮电大学出版社2005CSMA类型的多址接入协议2]钱进无转应田由T业出版社2004无线局域网可以在普通局域网基础上通过无线Hub、无线[3]金纯IE中国煤化工业出版社2004接入站(AP)、无线网桥、无线 Mo de n及无线网卡等来实CNMHG70科技资讯 SCI ENCE& TECHNOL OGY I NF ORMATI ONIT技术SCI ENCE TECHNOLOGY科技资讯由应用程序自己进行处理。这时我们很自然的想到类似于中断I if ( nCode< 0/定义日志钩子函数截获的处理的方法,我们可以在系统把消息传送给应用程序的ret ur n Cal I Next Hook Ex( hook Dat a[J OURNAL RECORD这个过程中截获消息并在进行完自己的处理后再交给应用程序。hook, nCode, WPar am| Par am;//重新执行本程序nCode = HC ACTI ON2.Hbok的种类f EVENTMG *pEvt = EVENTM6G *)I Par am按事件分类,有如下的几种常用类型i f( pEvt->message = W KEYDOW键盘钩子和低级键盘钩子可以监视各种键盘消息。/判断是否有按键动作鼠标钩子和低级鼠标钩子可以监视各种鼠标消息。t int vKey LOBYTE( pEvt->par amL)外壳钩子可以监视各种She|事件消息。比如启动和关闭应//取得虚拟键值用程序。char ch日志钩子可以记录从系统消息队列中取出的各种事件消息。窗口过程钩子监视所有从系统消息队列发往目标窗口的消hOcus Get Act i vew ndow)/取得当前活动窗口句柄按使用范围分类,主要有线程钩子和系统钩子f(g hLast Focus != hOcus)线程钩子监视指定线程的事件消息。/判断当前活动窗口是否改变系统钩子监视系统中的所有线程的事件消息Get W ndowText( hFocus, SzTi tI e, 256)g_ hLast Focus hOcus3.日志钩子日志钩子是一种很特别的钩子,它只是在系统信息(如键Post Message( hWhd, WM HOOKMESSAGE, ( WPARAM盘信息和鼠标信息等)进出队列才起作用。系统中只存在一个 g_ SendBuf fer,0)这样的日志钩子,所以无论我们要提取鼠标信息还是键盘信息nt i Shi f t= Get KeySt at e(0×10);//判断SHFT都只需加载一次日志钩子,因此利用日志钩子提取系统信息的方 CAPTI ON, NUM OCK等键是否按下法,与以往的方法比较起来就显得简单、快捷。nt i Capi t al Get Key St at e( Ox14)日志钩子函数在系统中优先级最大,一般情况下日志钩子是nt i Nunrock = Get Key St at e( 0x90)在系统之前就处理了它所需要处理的信息,因此对于日志钩子来bool bShi ft=(i Shi ft& Key Press Mask)== KeyPr essMask说,系统无法将它所需的信息屏蔽,让日志钩子无法提取。日志bool cApi tal =(i Capi tal &1)5728==1;钩子函数可以提取出别的钩子函数无法提取的信息。bool bNumock=(i NumLock &1)==1;虽然严格地说日志钩子是全局钩子的一种,但是使用日志钩i f kEy >=48&&vEy < 57子不需要动态链接库,而全局钩子则必须要用动态链接库.在使//测试数字0-9的按键状态用日志钩子函数时,首先安装钩子,安装钩子函数我们一般通过t if(! bshi ft)HHOOK Set w ndows Hook ex()来进行char)vEy: strcat(g SendBuf fer, ""Set W ndows Hook Ex(i nt i dHook, HooKPRoc I pf nstrncat (g_ SendBuf fer, &C, 1)HI NS TaNcE hmbd, dword dwt hr eadi d)Post Message( hWhd, WM HOOKMESSAGE, WPARAMd Hbok/所要安装的钩子的类型g_SendBuf fer, si zeof g_SendBuf fer)): 33I pf n∥/钩子函数的地址//应用实例的句柄A-z(a-z)的按键状态、小键盘0-9、其他键、方dwthr eadi d//安装钩子函数的线程标识向键、功能键[F1]-[F12]、SHFT, CAPTI ON, NUM OCK安装日志钩子只要把ⅰ dhoo k的值设置为等键的代码此处略WH」 OURNAL RE CORD即可,lpfn设置为相应所调用的钩ret ur n Cal I Next Hook Ex( hook Dat a[ OURNALRECORD子函数的子函数名,而hMbd设为: Af x i nst ancehandl e(),hook, nCode, WPar am I Par am;}而 dwthr eadi d则设为0值安装完成以后,我们只需要把日志钩子提取出来的信息按要5.结论求进行过滤,就可以得到键盘信息或鼠标信息。钩子(Hook)具有强大的功能,它可以对 W ndows系统消用完日志钩子以后,就应该把它卸载掉。一般使用息进行拦截、监视和处理。该技术可以应用于监控、系统信UnhookW ndows Hook ex( HHOOK hhk)函数息记录等系统软件。本文对钩子核心技术进行了详细的描述并Unhook W ndows Hook Ex( HOok hhk给出了捕获键盘信息的部分代码,希望对读者能有所启发。HHOOK hhk//所要卸载掉的钩子程序的句柄由于日志钩子在系统处理信息之前就处理了系统所要处理的参考文献信息,这就增加系统处理信息的时间,系统性能会降低,这一点在[们[美] RI CHTER」, W ndow核心编程[M.北京:机系统负载较重的情况下尤其突岀。所以我们在使用完日志钩子械工业出版社,2000.以后,一定要把日志钩子卸载,以免降低系统性能。[2][美] Eugene d afen,等.MCⅵ sual c++6技术内幕[M.王建华等译.北京清华大学出版社,2004.使用日志钩子捕获键盘击键信息由于日志钩子方便快捷的特性,钩子技术应用就以日志钩子为例,下面是利用日志钩子采集键盘击键信息的代码片断LRESUL T CALLBACK Jour nal Recor dPr oc(i nt nCode中国煤化工WPARAM WPar am LPARAM I Par amCNMHG科技资讯 SCI ENCE& TECHNOL OGY I NFORMATI ON7

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。