一种注册表重定向方法及装置的制造方法

文档序号:9452864阅读:630来源:国知局
一种注册表重定向方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机软件系统,尤其是浏览器系统,具体地涉及在浏览器进程中对注册表进行转接的方法以及相应的装置。
【背景技术】
[0002]长久以来,IE浏览器通过COM组件化模型技术允许程序员基于COM编程接口来使用IE浏览器的内核组件,从而编写定制化的第三方浏览器。随着时代的发展,IE浏览器本身也经过多次更新而存在多个版本,从较早之前的IE5到最新的IE11,其中每个版本的稳定性及性能都有所不同,例如IElO在网页加载速度、HTML5支持方面就优于IE8及IE9,其系统稳定性和性能方面也更为突出。若第三方定制的浏览器能够在装有IE8或IE9的计算机上使用IElO内核,那么对于用户体验是一个很大的提升。
[0003]现有技术一般采用注册表转接的方式解决浏览器自定义IE内核集成的技术问题,同时,注册表转接还可以用来实现Flash插件的集合或其他一些特定技术问题;还可以形成一种通用的技术方案来解决一些与注册表交互的相关技术问题。
[0004]目前,市场上比较流行的浏览器软件主要有360浏览器、百度浏览器等。这些软件均或多或少的采用注册表转接技术实现IE内核集成或其他需要与注册表进行交互的技术问题,但这些软件在注册表重定向的过程中总会对整个计算机操作系统内其他进程的运行造成一定影响。以申请号为201210460891.X的专利申请为例,该专利申请文件中提出了一种解决方案,其优选地基于“在应用层对特定或全部进程进行注册表操作API函数的挂钩”的技术方案实现注册表转接,这一方案虽然能够实现注册表重定向,但是应用层中被挂钩的进程越多对整个应用层的影响就越大,甚至会对计算机操作系统的整体运行速度产生影响。另一方面,现有技术一般通过在应用层进程下Kernel32.dll或advapi32.dll动态链接库中的RegOpen函数上挂钩API函数来实现注册表转接,但这种技术方案对挂钩时间有特殊要求,由于上述技术方案中API函数挂钩的地址并不是访问注册表的必经之路,所以需要在所述进程访问注册表前实现挂钩以免遗漏,这就在很大程度对用户的实际操作造成了困扰。
[0005]现在的用户尤其是程序员对于操作的便利性是有很高的要求的,尤其在用户体验上,用户体验的细微变化往往决定了一个软件被接受的程度。以上述情况为例,在很多时候,用户需要一种可以便捷、全面、稳定地实现注册表重定向的浏览器软件,例如,用户在一计算机上打开所述浏览器软件后,所述软件仅在软件自身的进程中挂钩API函数实现注册表重定向,更进一步地,软件将API函数挂钩在应用层最下方的动态链接库中,这是所有函数访问注册表的必经步骤,也是唯一入口,从而确保计算机操作系统的运行速度同时更彻底地实现注册表转接。
[0006]在现阶段,没有一个非常好的方法能够解决上述提到的问题。大多数情况下,用户都只能基于浏览器对应用层内多个甚至所有进程挂钩API函数来实现注册表重定向,没有提供一种有效地浏览器软件,使用户可以将API函数挂钩在浏览器软件自身进程内应用层最底层的动态链接库中。

【发明内容】

[0007]为了克服现有技术中没有提供在浏览器软件进程内应用层最底层挂钩API函数实现注册表重定向的技术问题,本发明的目的是提供一种在浏览器软件进程内实现注册表重定向的方法及相应的装置。
[0008]根据本发明的一个方面,提供一种注册表重定向方法,其用于在一应用程序进程内对注册表进行转接,包括如下步骤:
[0009]a.获取所述应用程序进程包括的N个动态链接库,其中N^l;
[0010]b.在第m个动态链接库中挂钩第一处理窗口,其中I彡m彡N;
[0011]C.基于所述第一处理窗口对传入信息进行判断,所述传入信息与所述第m个动态链接库相对应;
[0012]d.基于判断结果修改所述传入信息;
[0013]e.将修改后的传入信息反馈至所述第m个动态链接库。
[0014]优选地,所述N个动态链接库用于指引所述应用程序进程访问系统注册表,相应地,所述步骤a包括如下步骤:
[0015]al.基于第二处理窗口查找所述N个动态链接库。
[0016]优选地,所述第二处理窗口包括如下方式中的任一种或任多种:
[0017]计算机唯一标识码;或者
[0018]应用程序代码。
[0019]优选地,所述动态链接库包括y个调用函数,其中y ^ 1,相应地,所述步骤b包括如下步骤:
[0020]bl.在所述第m个动态链接库的第i个调用函数下挂钩所述第一处理窗口,其中I ^ i ^ yD
[0021]优选地,所述动态链接库包括y个调用函数,其中y ^ I,相应地,所述步骤b包括如下步骤:
[0022]bl’.在所述第m个动态链接库的第i?i+n个调用函数下挂钩所述第一处理窗口,其中I彡i < i+n彡y且η > O。
[0023]优选地,所述传入信息包括传入路径,相应地,所述步骤c包括如下步骤:
[0024]Cl.判断所述传入路径是否包括在一转接路径库中;
[0025]相应地,所述步骤d包括如下步骤:
[0026]dl.若所述传入路径包括在所述转接路径库中,则基于所述转接路径库修改所述传入路径参数。
[0027]优选地,所述传入信息还包括注册表项A,所述注册表项A为所述传入路径指向的注册表文件,相应地,所述步骤c还包括如下步骤:
[0028]Cl’.判断所述注册表项A是否包括在一转接路径库中;
[0029]相应地,所述步骤d包括如下步骤:
[0030]dr.若所述注册表项A包括在所述转接路径库中,则基于所述转接路径库修改所述传入路径参数。[0031 ] 优选地,所述转接路径库包括X组传入信息及集合U,所述集合U包括一个或多个转接信息,所述传入信息与所述集合U相对应,其中X ^ 1,相应地,所述步骤dl或步骤dl’包括如下步骤:
[0032]将与所述传入信息相对应的集合U作为待转接路径;
[0033]基于当前进程主题将所述集合U中一转接信息作为所述修改后传入信息。
[0034]优选地,所述第m个动态链接库处于所述计算机操作系统第X层架构的最底层,其中 I < X < 7。
[0035]优选地,所述第一处理窗口包括注册表访问函数。
[0036]优选地,所述步骤e中所述反馈基于API Hook技术实现。
[0037]优选地,所述API Hook技术包括如下函数中的任一种:
[0038]-1NLINE Hook ;或者
[0039]-1AT Hook0
[0040]优选地,所述调用函数至少包括如下函数中的任一种或任多种:
[0041 ] -NtOpenKey ;
[0042]-NtOpenKeyEx ;
[0043]-NtCreateKey ;
[0044]-NtQueryValueKey ;
[0045]-NtQueryKey0
[0046]根据本发明的另一个方面,还提供一种注册表重定向装置,其用于在一应用程序进程内对注册表进行转接,包括:
[0047]第一获取装置,其用于获取所述应用程序进程包括的N个动态链接库,其中N^l;
[0048]第一处理装置,其用于在第m个动态链接库中挂钩第一处理窗口,其中KmSN;
[0049]第一判断装置,其用于基于所述第一处理窗口对传入信息进行判断,所述传入信息与所述第m个动态链接库相对应;
[0050]第二处理装置,其用于基于判断结果修改所述传入信息;
[0051]第一发送装置,其用于将修改后的传入信息反馈至所述第m个动态链接库。
[0052]优选地,所述N个动态链接库用于指引所述应用程序进程访问系统注册表,相应地,所述第一获取装置包括:
[0053]第一确定装置,其用于基于第二处理窗口查找所述N个动态链接库。
[0054]优选地,所述动态链接库包括y个调用函数,其中y ^ 1,相应地,所述第一处理装置包括:
[0055]第二处理装置,其用于在所述第m个动态链接库的第i个调用函数下挂钩所述第一处理窗口,其中I彡i彡y。
[0056]优选地,所述动态链接库包括y个调用函数,其中I ^ 1,相应地,所述第一处理装置还包括:
[0057]第三处理装置,其用于在所述第m个动态链接库的第i?i+n个调用函数下挂钩所述第一处理窗口,其中I < i < i+n < y且η > O。
[0058]优选地,所述传入信息包括传入路径,相应地,所述第一判断装置包括:
[0059]第二判断装置,其用于判断所述传入路径是否包括在一转接路径库中;
[0060]相应地,所述第二处理装置包括:
[0061]第四处理装置,其用于若所述传入路径包括在所述转接路径库中,则基于所述转接路径库修改所述传入路径参数。
[0062]优选地,所述传入信息还包括注册表项A,所述注册表项A为所述传入路径指向的注册表文件,相应地,所述第一判断装置还包括:
[0063]第三判断装置,其用于判断所述注册表项A是否包括在一转接路径库中;
[0064]相应地,所述第二处理装置包括:
[0065]第五处理装置,其用于若所述注册表项A包括在所述转接路径库中,则基于所述转接路径库修改所述传入路径参数。
[0066]优选地,所述转接路径库包括X组传入信息及集合U,所述集合U包括一个或多个转接信息,所述传入信息与所述集合U相对应,其中X ^ 1,相应地,所述第四处理装置或所述第五处理装置包括:
[0067]第二确定装置,其用于将与所述传入信息相对应的集合U作为待转接路径;
[0068]第三确定装置,其用于基于当前进程主题将所述集合U中一转接信息作为所述修改后传入信息。
[0069]优选地,所述第m个动态链接库处于所述计算机操作系统第X层架构的最底层,其中 I < X < 7。
[0070]优选地,所述第一发送装置基于API Hook技术实现,包括如下装置中的任一
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1