默认浏览器的控制方法、装置及终端的制作方法_2

文档序号:8905101阅读:来源:国知局
例的默认浏览器的控制装置的结构示意图。
【具体实施方式】
[0021]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0022]下面参考附图描述根据本发明实施例的默认浏览器的控制方法、装置及终端。
[0023]图2是根据本发明一个实施例的默认浏览器的控制方法的流程图。需要说明的是,在本发明的实施例中,默认浏览器可理解为用户锁定的默认浏览器,即针对在应用程序中使用该锁定的默认浏览器打开网址。
[0024]如图2所示,该默认浏览器的控制方法可以包括:
[0025]S201,接收应用程序的用于调用浏览器的进程创建请求,并根据进程创建请求调用系统的进程创建系统函数以创建所要创建的进程。
[0026]举例而言,以应用程序为某聊天工具为例,当用户在某聊天工具中通过点击以打开其展示的网址“http://www.XXX.com”时,某聊天工具会以“http://www.xxx.com”作为参数来向系统发送进程创建请求。当接收到某聊天工具发送的用于调用浏览器的进程创建请求之后,可根据该进程创建请求调用系统的进程创建系统函数以开始创建所要创建的进程。
[0027]S202,截取系统的进程创建系统函数,并获取进程创建系统函数所要创建的进程所加载的映像路径。
[0028]举例而言,假设默认浏览器为lockBrowser.exe,当前浏览器为Abrowser.exe,在具体实施例中,当系统的进程创建系统函数开始创建进程时,可先通过钩子函数截取系统的进程创建系统函数,其中,在本发明的实施例中,钩子函数可用于在被执行时获取映像函数,并可获取当前浏览器Abrowser.exe文件及其文件句柄hFile,之后可将该文件句柄hFile传入NtCreateSect1nC..hFile)以加载程序映像。然后,在钩子函数被执行时,钩子函数可从参数hFile中获取该文件句柄对应的映像路径。
[0029]S203,判断映像路径是否为默认浏览器的路径。
[0030]例如,可先通过ObReferenceObjectByHandle函数获取默认浏览器的路径,之后,可将上述获取到的映像路径与默认浏览器的路径进行比较,以判断两者的路径是否一致。
[0031]S204,如果判断映像路径不为默认浏览器的路径,则根据默认浏览器的路径创建进程句柄,并根据进程句柄创建默认浏览器的进程,以及将进程反馈至应用程序,以使应用程序根据进程调用默认浏览器。
[0032]具体地,当映像路径不为默认浏览器的路径时,需要重定向。例如,可将默认浏览器的路径作为参数,使用NtCreateFile (默认浏览器的路径)函数来打开默认浏览器1ckBrowser.exe文件,得到对应的文件句柄hNewFile,之后,可将文件句柄hNewFile作为参数,调用函数RealNtCreateSect1n (hNewFile),以得到进程句柄hNewSect1n。最后,可根据该进程句柄hNewSect1n创建默认浏览器1ckBrowser.exe的进程,并将该进程反馈到应用程序,应用程序根据该进程调用默认浏览器lockB1wser.exe。由此,可以达到锁定默认浏览器lockB1wser.exe的目的,并使得用户在应用程序打开网址时可使用锁定的默认浏览器,避免系统浏览器可能会被修改的风险,提高了安全性。
[0033]S205,如果判断映像路径为默认浏览器的路径,则直接创建默认浏览器的进程,以使应用程序调用默认浏览器。
[0034]具体地,当判断映像路径为默认浏览器的路径时,可直接根据该映像路径创建默认浏览器的进程,以使应用程序根据该进程调用默认浏览器。
[0035]进一步的,在本发明的一个实施例中,在截取系统的进程创建系统函数之前,该默认浏览器的控制方法还可包括:将SSDT(System Services Descriptor Table,系统服务描述符表)中调用函数地址修改为钩子函数的地址,以使系统的进程创建系统函数在创建进程时执行钩子函数。
[0036]具体而言,在本发明的实施例中,可先获取SSDT,并获取进程创建系统函数在SSDT中的函数地址索引号。之后,可根据进程创建系统函数在SSDT中的函数地址索引号,将SSDT中的调用函数地址修改为钩子函数的地址,并保存原调用函数地址,以使系统的进程创建系统函数在创建进程时执行钩子函数,即完成Η00Κ。
[0037]其中,在本发明的实施例中,获取进程创建系统函数在SSDT中的函数地址索引号的具体实现过程可包括:可先通过系统进程查询函数(如ZwQuerySystemInformat1n)获取系统的进程管理库中的基址。之后,可根据可移植的执行体PE文件结构,获取基址的导出表地址。然后,可根据导出表和进程创建系统函数获取进程创建系统函数在SSDT中的函数地址索引号。例如,可枚举该导出表,并将枚举结果与进程创建系统函数进行对比以获取进程创建系统函数在SSDT中的函数地址索引号。
[0038]本发明实施例的默认浏览器的控制方法,可先接收应用程序的用于调用浏览器的进程创建请求,之后可根据进程创建请求调用系统的进程创建系统函数以开始创建所要创建的进程,在创建的过程中,可通过钩子函数Hook (挂钩)系统的进程创建系统函数以截获该进程创建系统函数所要创建的进程所加载的映像路径,并判断加载的映像路径是否为默认浏览器的路径,如果不是,则根据默认浏览器路径创建一个进程句柄,并根据该进程句柄创建默认浏览器的进程,并将该进程反馈至应用程序,以使应用程序根据该进程调用默认浏览器,从而达到锁定默认浏览的目的,由于通过调用系统的进程创建系统函数以创建目标进程,使得在执行系统调用时执行的是内核代码,从而使得整个工作处于内核态,所以不存在权限问题,并且由于不需要通过DLL注入方式将默认浏览器路径的代码和数据注入到目标进程中,因此减少了对目标进程的内存占用,提高了系统性能。
[0039]另外,本发明还提出了一种默认浏览器的控制装置。
[0040]图3是根据本发明一个实施例的默认浏览器的控制装置的结构示意图。需要说明的是,在本发明的实施例中,默认浏览器可理解为用户锁定的默认浏览器,即针对在应用程序中使用该锁定的默认浏览器打开网址。
[0041]如图3所示,该默认浏览器的控制装置可以包括:接收模块10、第一创建模块20、截取模块30、获取模块40、判断模块50、第二创建模块60和第三创建模块70。
[0042]具体地,接收模块10可用于接收应用程序的用于调用浏览器的进程创建请求。第一创建模块20可用于根据进程创建请求调用系统的进程创建系统函数以创建所要创建的进程。举例而言,以应用程序为某聊天工具为例,当用户在某聊天工具中通过点击以打开其展示的网址“http://www.xxx.com”时,某聊天工具会以“http://www.xxx.com”作为参数来向系统发送进程创建请求。当接收模块10接收到某聊天工具发送的用于调用浏览器的进程创建请求之后,第一创建模块20可根据该进程创建请求调用系统的进程创建系统函数以开始创建所要创建的进程。
[0043]截取模块30可用于截取系统的进程创建系统函数。获取模块40可用于获取进程创建系统函数所要创建的进程所加载的映像路径。
[0044]举例而言,假设默认浏览器为1ckBrowser.exe,当前浏览器为Abrowser.exe,在系统的进程创建系统函数开始创建进程时,截取模块30可通过钩子函数截取系统的进程创建系统函数,其中,在本发明的实施例中,钩子函数可用于在被执行时获取映像函数。获取模块40可获取当前浏览器Abrowser.exe文件及其文件句柄hFile,之后可将该文件句柄hFile传入NtCreateSect1nC..hFile)以加载程序映像。然后,在钩子函数被执行时,钩子函数可从参数hFile中获取该文件句柄对应的映像路径。
[0045]判断模块50可用于判断映像路径是否为默认浏览器的路径。例如,判断模块50可先通过ObReferenceObjectByHandle函数获取默认浏览器的路径,之后,可将上述
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1