在64位系统中利用32位主程序拦截64位信息的方法

文档序号:82230阅读:227来源:国知局
专利名称:在64位系统中利用32位主程序拦截64位信息的方法
技术领域
本发明涉及一种32位主程序拦截信息的方法,尤其涉及一种在64位系统中利用32位主程序拦截64位信息的方法。
背景技术
目前,通常在实现对远程服务器进行远程控制时,其核心技术就是对使用Windows系统的服务器(Windows Server)的远程控制中采用的拦截函数运行机制,这也是市面上大多数类似软件都采用的方式,其原理就是使用系统中全面拦截函数截获系统内所有的信息,而后通过分析信息的种类和需要更新的范围传送图像到客户端(Client),而后客户端再将对应的图像显示在本地的窗口上。这种方式的优势在于每次传送的图形都是需要更新区域的图形,而不是全部的桌面图像,一定程度上减轻了网络传输的压力并提高了传输速度。
但是当服务器采用64位系统,而主程序却为32位,上述方式就出现了问题,32位主程序中的32位拦截函数无法拦截服务器64位系统内运行的64位程序的64位信息,那么客户端则无法得到需要的更新的数据,如鼠标的信息等。
经过研究发现,32位主程序中运行的32位拦截函数仅仅能拦截到64位系统运行的32位程序的信息,却不能成功拦截64位系统运行的64位程序的信息;而64位拦截函数能拦截到64位系统运行的64位程序的信息,却不能成功拦截64位系统运行的32位程序的信息。因此,服务器使用的32位主程序若要拦截采用64位系统的服务器运行程序的所有信息,就不能仅用32位拦截函数或者64位拦截函数。

发明内容本发明所要解决的技术问题在于提供一种在64位系统中利用32位主程序拦截64位信息的方法,用以令64位系统的服务器中运行的32位主程序能够拦截系统的所有信息。
为了实现上述目的,本发明提供了一种在64位系统中利用32位主程序拦截64位信息的方法,其特点在于,该方法包含以下步骤(1)设置32位的包含拦截函数的动态链接程序库及64位的包含拦截函数的动态链接程序库;(2)设置多个64位拦截函数的调用模块;(3)设置该64位拦截函数;(4)通过该32位拦截函数拦截系统中运行的所有32位程序的信息,并通过该64位拦截函数拦截系统中运行的所有64位程序的信息;(5)产生一套接通信服务程序;(6)发送移除该32位拦截函数与该64位拦截函数的信息;以及(7)该32位主程序移除该32位拦截函数,同时移除该64位拦截函数。
上述在64位系统中利用32位主程序拦截64位信息的方法,其特点在于,该64位拦截函数设置在原有的32位拦截函数之后。
上述在64位系统中利用32位主程序拦截64位信息的方法,其特点在于,该64位拦截函数是全面的拦截函数,其在该64位包含拦截函数的动态链接程序库中设置。
上述在64位系统中利用32位主程序拦截64位信息的方法,其特征在于,该64位拦截函数的调用模块为后台程序,用于设置该64位拦截函数。
上述在64位系统中利用32位主程序拦截64位信息的方法,其特点在于,所述各64位拦截函数的调用模块调用该拦截函数的动态链接程序库中的多个入口函数,并通过该入口函数传递提供至该64位拦截函数的参数,以设置该64位拦截函数。
上述在64位系统中利用32位主程序拦截64位信息的方法,其特点在于,还包含如下步骤当该32位主程序移除该32位拦截函数时,通过该套接通信服务程序发送移除该64位拦截函数的信息给该64位拦截函数的调用模块;当该64位拦截函数的调用模块收到移除该64位拦截函数的信息,该64位拦截函数的调用模块调用该入口函数,移除该64位拦截函数;以及向该32位主程序发送该64位拦截函数已移除的信息。
本发明的功效在于,对已有的32位主程序改动量小,基本上在原先采用32位操作系统的服务器上运行的32位主程序变化很少,也不需要重新编译成64位系统上的程序。原来32位拦截函数部分无须做任何动作。即使用已有的32位主程序就可以在服务器采用的64位系统上正确运行,并通过64位拦截函数拦截64位信息。
采用本发明的方法,可以适用到64位Windows系统上使用拦截函数机制的所有相关程序,同时还不会影响到32位系统上此类程序的使用。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
图1为本发明的64位Windows系统的系统方块图;图2为本发明的32位主程序中拦截64位信息的方法流程图;图3为本发明的移除64位拦截函数的方法流程图;以及图4为本发明在32位主程序中使用64位拦截函数的方法流程图。
其中,附图标记100 32位主程序220 32位包含拦截函数的动态链接程序库310 64位拦截函数调用模块320 64位包含拦截函数的动态链接程序库步骤101 设置32位的包含拦截函数的动态链接程序库及64位的包含拦截函数的动态链接程序库步骤102 设置多个64位拦截函数的调用模块步骤103 设置64位拦截函数步骤104 32位拦截函数拦截系统中运行的所有32位程序的信息,64位拦截函数拦截系统中运行的所有64位程序的信息步骤105 产生一套接通信服务程序步骤106 判断是否发送移除拦截函数之信息步骤107 32位主程序移除32位拦截函数,同时移除64位拦截函数步骤201 设置64位的包含拦截函数的动态链接程序库,设置64位拦截函数,并设置此拦截函数步骤202 产生一套接通信服务程序步骤203 判断套接通信服务程序是否发送移除64位拦截函数的信息步骤204 调用拦截函数程序入口函数,移除拦截函数,并发送答复数据步骤301 设置多个32位包含拦截函数的动态链接程序库,设置32位拦截函数,并设置此拦截函数步骤302 产生一套接通信服务程序步骤303 设置多个64位包含拦截函数的动态链接程序库,设置64位拦截函数,并设置此拦截函数步骤304 处理32位拦截函数和64位拦截函数发送的信息步骤305 判断是否发送移除32位拦截函数的信息步骤306 移除32位拦截函数步骤307 连接套接通信服务程序,判断是否发送移除64位拦截函数的信息步骤308 移除64位拦截函数具体实施方式
请参考图1,图中表示了本发明的64位Windows系统的系统方块图,包含32位主程序100;32位包含拦截函数的动态链接程序库220,由上述32位主程序100设置或者移除,并且此32位包含拦截函数的动态链接程序库220将截获到的32位信息发送至上述32位主程序100;64位拦截函数调用模块310,由上述32位主程序100设置或者移除,用以设置或者移除64位包含拦截函数的动态链接程序库;64位包含拦截函数的动态链接程序库320,将截获到的64位信息发送至上述32位主程序100。
64位拦截函数调用模块310是后台程序,仅仅起到一个设置64位拦截函数的作用,需要提供给拦截函数的参数,都可以通过命令方式将参数传递给此程序,而由此程序在运行时调用64位包含拦截函数的动态链接程序库320中的入口函数,以便设置64位拦截函数。
因为拦截函数是应用于全面,全面的拦截函数必须放在动态链接程序库中设置,所以需要一个64位包含拦截函数的动态链接程序库320。64位拦截函数从程序上基本和32位程序拦截函数相同,只是编译成64位平台上的执行程序。32位拦截函数和64位拦截函数都完成同样的一件工作,就是将拦截到的信息发送给32位主程序100,由主程序统一进行处理,不同之处在于64位拦截函数能检测到64位信息,32位拦截函数能够检测到32位信息。
原先的32位主程序100仍然按照32位进行编译,所需要修改的部分就是在以前调用32位包含拦截函数的动态链接程序库220的地方增加设置上述64位拦截函数调用模块310的过程。一旦64位拦截函数设置,64位拦截函数调用模块310就没有具体意义了。在32位主程序100中摘掉32位拦截函数时也同样要摘掉64位拦截函数。
在本发明的一实施例中通过套接(socket)通信服务程序移除64位拦截函数,现在请参考图3,该图为本发明移除64位拦截函数的方法流程图,如图所示,本发明的移除64位拦截函数的方法包含以下步骤步骤201,设置64位的包含拦截函数的动态链接程序库,设置64位拦截函数,并设置此拦截函数;步骤202,产生一套接通信服务程序;步骤203,判断套接通信服务程序是否发送移除64位拦截函数的信息;步骤204,当发出此移除信息时,调用拦截函数程序入口函数,移除拦截函数,并发送答复数据;若没有发出此移除信息,则64位拦截函数一直等待此移除信息。
在本发明的一实施例中,32位主程序100,其功能是提供服务给客户端,使得客户端能够完全地控制服务器所在的计算机。随着各种计算机硬件软件的不断升级以及64位处理器的出现,于是微软也推出了其64位操作系统,上述32位程序为了能在采用64位操作系统的服务器上使用,于是应用本发明的技术。
如图2所示,此图为本发明的32位主程序中拦截64位信息的方法流程图,包含以下步骤步骤101,设置32位的包含拦截函数的动态链接程序库及64位的包含拦截函数的动态链接程序库,此步骤用以设置64位拦截函数,即提供多个入口函数,用以设置多个64位拦截函数能够截获系统上运行的所有64位程序的所有信息以及卸载64位拦截函数,64位拦截函数所截获的信息会根据需要转换成屏幕要更新的区域范围数据,发送给32位主程序进行处理;步骤102,设置多个64位拦截函数的调用模块,首先分析系统调用64位拦截函数时的命令行参数,得到入口地址,用以调用设置64位拦截函数的函数;步骤103,设置64位拦截函数;步骤104,通过32位拦截函数拦截系统中运行的所有32位程序的信息,并通过64位拦截函数拦截系统中运行的所有64位程序的信息;步骤105,产生一套接通信服务程序,用以监视某一端口,一旦有用户连接,则收取其接收到的数据,判断其数据内容,如果是预先约定的数据,则说明32位主程序需要移除拦截函数程序,则发送移除拦截函数信息给32位主程序;步骤106,判断是否发送有移除32位拦截函数的信息;步骤107,当发出此移除信息时,32位主程序移除32位拦截函数,移除64位拦截函数,若没有发出此移除信息,则32位拦截函数一直等待此移除信息发出。
由于32位主程序100已经在需要的时候,比如有客户连接的时候设置了32位拦截函数,所要完成就是在设置了32位拦截函数之后设置64位拦截函数,并将所需的命令参数也设置好,命令行数是约定的32位主程序100的接收信息的窗口句柄等,一旦执行,64位拦截函数就可以开始工作,32位主程序能够接收到64位包含拦截函数的动态链接程序库320发送来的信息。
在客户断掉连接,或者其它的某些情况下,服务器需要移除拦截函数,于是程序产生了一个套接通信服务程序,用来连接拦截函数运行中产生的服务器,将信息传递至服务器,同时等待从服务器返回的信息,而后就可以正式确认拦截函数已经被摘掉。
其流程图如图4所示,此图为本发明的在32位主程序中使用64位拦截函数的方法流程图,包含步骤301,设置多个32位的包含拦截函数的动态链接程序库,设置32位拦截函数,并设置此拦截函数;步骤302,产生一套接通信服务程序;步骤303,设置多个64位的包含拦截函数的动态链接程序库,设置64位拦截函数,并设置此拦截函数;步骤304,处理32位拦截函数和64位拦截函数发送的信息;步骤305,判断32位主程序是否发送移除32位拦截函数的信息;步骤306,当发出此移除信息时,移除32位拦截函数;若没有发出此移除信息,则32位拦截函数一直等待此移除信息发出;步骤307,判断套接通信服务程序是否发送移除64位拦截函数的信息;步骤308,当发出此移除信息时,移除64位拦截函数,若没有发出此移除信息,则64位拦截函数一直等待此移除信息发出。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明权利要求
的保护范围。
权利要求
1.一种在64位系统中利用32位主程序拦截64位信息的方法,其特征在于,该方法包含以下步骤(1)设置32位的包含拦截函数的动态链接程序库及64位的包含拦截函数的动态链接程序库;(2)设置多个64位拦截函数的调用模块;(3)设置该64位拦截函数;(4)通过该32位拦截函数拦截系统中运行的所有32位程序的信息,并通过该64位拦截函数拦截系统中运行的所有64位程序的信息;(5)产生一套接通信服务程序;(6)发送移除该32位拦截函数与该64位拦截函数的信息;以及(7)该32位主程序移除该32位拦截函数,同时移除该64位拦截函数。
2.根据权利要求
1所述的在64位系统中利用32位主程序拦截64位信息的方法,其特征在于,该64位拦截函数设置在原有的32位拦截函数之后。
3.根据权利要求
1所述的在64位系统中利用32位主程序拦截64位信息的方法,其特征在于,该64位拦截函数是全面的拦截函数,其在该64位包含拦截函数的动态链接程序库中设置。
4.根据权利要求
1所述的在64位系统中利用32位主程序拦截64位信息的方法,其特征在于,该64位拦截函数的调用模块为后台程序,用于设置该64位拦截函数。
5.根据权利要求
4所述的在64位系统中利用32位主程序拦截64位信息的方法,其特征在于,所述各64位拦截函数的调用模块调用该拦截函数的动态链接程序库中的多个入口函数,并通过该入口函数传递提供至该64位拦截函数的参数,以设置该64位拦截函数。
6.根据权利要求
4所述的在64位系统中利用32位主程序拦截64位信息的方法,其特征在于,还包含如下步骤当该32位主程序移除该32位拦截函数时,通过该套接通信服务程序发送移除该64位拦截函数的信息给该64位拦截函数的调用模块;当该64位拦截函数的调用模块收到移除该64位拦截函数的信息,该64位拦截函数的调用模块调用该入口函数,移除该64位拦截函数;以及向该32位主程序发送该64位拦截函数已移除的信息。
专利摘要
本发明涉及一种在64位系统中利用32位主程序拦截64位信息的方法,包含如下步骤设置32位的包含拦截函数的动态链接程序库及64位的包含拦截函数的动态链接程序库;设置多个64位拦截函数的调用模块;设置64位拦截函数;产生一套接通信服务程序;通过32位拦截函数拦截系统中运行的所有32位程序的信息,并通过64位拦截函数拦截系统中运行的所有64位程序的信息;发送移除32位拦截函数与64位拦截函数的信息;以及32位主程序移除32位拦截函数,同时移除64位拦截函数。本发明使用已有的32位主程序就可以在服务器采用的64位系统上正确运行,并通过64位拦截函数拦截64位信息。
文档编号G06F9/44GK1991745SQ200510132894
公开日2007年7月4日 申请日期2005年12月27日
发明者马春梅, 陈玄同, 刘文涵 申请人:英业达股份有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1