默认浏览器的控制方法、装置及终端的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种默认浏览器的控制方法、装置及终端。
【背景技术】
[0002]目前,当用户在聊天工具上点击聊天工具中展现的网址时,会调用系统当前默认浏览器打开该网址。但是,如果系统当前默认浏览器不具备网址安全性检测功能,则当用户打开的网址包含诈骗内容时,可能会给用户带来财产损失的风险。因此,需要锁定一个具有网址安全性检测功能的默认浏览器来打开聊天工具类应用程序中展现的网址,以避免系统默认浏览器会被修改而带来的风险。
[0003]相关技术中,如图1所示,锁定默认浏览器的方法主要是:在RING3(用户态)中通过函数CreateProcess创建一个目标进程以运行浏览器“Abrowser.exe”,其中可通过DLL(Dynamic Link Library,动态链接库)注入的方式将浏览器“Abrowser.exe”的代码和数据映射到目标进程的地址空间中;之后,通过HOOK (Windows操作系统中提供的一种用以替换DOS下“中断”的系统机制,译为“挂钩”或“钩子”)对上述进程创建函数Createprocess,创建目标进程以运行浏览器“Abrowser.exe”这一事件进行挂钩;在HOOK进程创建函数Createprocess (即HookCreateProcess)的处理函数中,判断浏览器“Abrowser.exe”是否为锁定的默认浏览器;若是,则直接调用浏览器Abrowser.exe,若否,则修改目标参数为锁定的默认浏览器,即调用锁定的默认浏览器,从而达到锁定默认浏览器的目的。
[0004]但是存在的问题是:(1)由于是在RING3(用户态)中通过DLL注入的方式以锁定默认浏览器,所以可能会因为权限不够导致注入失败;(2)目标进程可以修改自己进程的内存,保护自己不被Η00Κ,从而不能保证目标进程运行的浏览器是否是默认浏览器,从而可能会导致默认浏览器锁定失败。
【发明内容】
[0005]本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
[0006]为此,本发明的第一个目的在于提出一种默认浏览器的控制方法。该方法通过调用系统的进程创建系统函数以创建目标进程,使得在执行系统调用时执行的是内核代码,从而使得整个工作处于内核态,所以不存在权限问题,提高了默认浏览器控制的成功率,提尚了系统性能。
[0007]本发明的第二个目的在于提出一种默认浏览器的控制装置。
[0008]本发明的第三个目的在于提出一种终端。
[0009]为了实现上述目的,本发明第一方面实施例的默认浏览器的控制方法,包括:接收应用程序的用于调用浏览器的进程创建请求,并根据所述进程创建请求调用系统的进程创建系统函数以创建所要创建的进程;截取所述系统的进程创建系统函数,并获取所述进程创建系统函数所要创建的进程所加载的映像路径;判断所述映像路径是否为默认浏览器的路径;如果判断映像路径不为所述默认浏览器的路径,则根据所述默认浏览器的路径创建进程句柄;以及根据所述进程句柄创建所述默认浏览器的进程,并将所述进程反馈至所述应用程序,以使所述应用程序根据所述进程调用所述默认浏览器。
[0010]本发明实施例的默认浏览器的控制方法,可先接收应用程序的用于调用浏览器的进程创建请求,之后可根据进程创建请求调用系统的进程创建系统函数以开始创建所要创建的进程,在创建的过程中,可通过钩子函数Hook (挂钩)系统的进程创建系统函数以截获该进程创建系统函数所要创建的进程所加载的映像路径,并判断加载的映像路径是否为默认浏览器的路径,如果不是,则根据默认浏览器路径创建一个进程句柄,并根据该进程句柄创建默认浏览器的进程,并将该进程反馈至应用程序,以使应用程序根据该进程调用默认浏览器,从而达到锁定默认浏览的目的,由于通过调用系统的进程创建系统函数以创建目标进程,使得在执行系统调用时执行的是内核代码,从而使得整个工作处于内核态,所以不存在权限问题,并且不需要将DLL注入目标进程,减少了对目标进程的内存占用,提高了系统性能。
[0011]为了实现上述目的,本发明第二方面实施例的默认浏览器的控制装置,包括:接收模块,用于接收应用程序的用于调用浏览器的进程创建请求;第一创建模块,用于根据所述进程创建请求调用系统的进程创建系统函数以创建所要创建的进程;截取模块,用于截取所述系统的进程创建系统函数;获取模块,用于获取所述进程创建系统函数所要创建的进程所加载的映像路径;判断模块,用于判断所述映像路径是否为默认浏览器的路径;第二创建模块,用于在判断映像路径不为所述默认浏览器的路径时,根据所述默认浏览器的路径创建进程句柄;以及第三创建模块,用于根据所述进程句柄创建所述默认浏览器的进程,并将所述进程反馈至所述应用程序,以使所述应用程序根据所述进程调用所述默认浏览器。
[0012]本发明实施例的默认浏览器的控制装置,可通过接收模块接收应用程序的用于调用浏览器的进程创建请求,第一创建模块根据进程创建请求调用系统的进程创建系统函数以开始创建所要创建的进程,在创建的过程中,截取模块通过钩子函数Hook (挂钩)系统的进程创建系统函数以截获该进程创建系统函数,获取模块获取该进程创建系统函数所要创建的进程所加载的映像路径,判断模块判断加载的映像路径是否为默认浏览器的路径,如果不是,则第二创建模块根据默认浏览器路径创建一个进程句柄,并根据该进程句柄创建默认浏览器的进程,并将该进程反馈至应用程序,以使应用程序根据该进程调用默认浏览器,从而达到锁定默认浏览的目的,由于通过调用系统的进程创建系统函数以创建目标进程,使得在执行系统调用时执行的是内核代码,从而使得整个工作处于内核态,所以不存在权限问题,并且不需要将DLL注入目标进程,减少了对目标进程的内存占用,提高了系统性會K。
[0013]为了实现上述目的,本发明第三方面实施例的终端,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述终端的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:接收应用程序的用于调用浏览器的进程创建请求,并根据所述进程创建请求调用系统的进程创建系统函数以创建所要创建的进程;截取所述系统的进程创建系统函数,并获取所述进程创建系统函数所要创建的进程所加载的映像路径;判断所述映像路径是否为默认浏览器的路径;如果判断映像路径不为所述默认浏览器的路径,则根据所述默认浏览器的路径创建进程句柄;以及根据所述进程句柄创建所述默认浏览器的进程,并将所述进程反馈至所述应用程序,以使所述应用程序根据所述进程调用所述默认浏览器。
[0014]本发明实施例的终端,可先接收应用程序的用于调用浏览器的进程创建请求,之后可根据进程创建请求调用系统的进程创建系统函数以开始创建所要创建的进程,在创建的过程中,可通过钩子函数Hook(挂钩)系统的进程创建系统函数以截获该进程创建系统函数所要创建的进程所加载的映像路径,并判断加载的映像路径是否为默认浏览器的路径,如果不是,则根据默认浏览器路径创建一个进程句柄,并根据该进程句柄创建默认浏览器的进程,并将该进程反馈至应用程序,以使应用程序根据该进程调用默认浏览器,从而达到锁定默认浏览的目的,由于通过调用系统的进程创建系统函数以创建目标进程,使得在执行系统调用时执行的是内核代码,从而使得整个工作处于内核态,所以不存在权限问题,并且不需要将DLL注入目标进程,减少了对目标进程的内存占用,提高了系统性能。
[0015]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0016]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
[0017]图1是现有技术中的锁定默认浏览器的方法的流程图;
[0018]图2是根据本发明一个实施例的默认浏览器的控制方法的流程图;
[0019]图3是根据本发明一个实施例的默认浏览器的控制装置的结构示意图;
[0020]图4是根据本发明另一个实施
例的默认浏览器的控制装置的结构示意图。
【具体实施方式】
[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函数获取默认浏览器的路径,之后,可将上述
获取到的映像路径与默认浏览器的路径进行比较,以判断两者的路径是否一致。
[0046]第二创建模块60可用于在判断映像路径不为默认浏览器的路径时,根据默认浏览器的路径创建进程句柄。第三创建模块70可用于根据进程句柄创建默认浏览器的进程,并将进程反馈至应用程序,以使应用程序根据进程调用默认浏览器。更具体地,当映像路径不为默认浏览器的路径时,需要重定向。例如,第二创建模块60可将默认浏览器的路径作为参数,使用NtCreateFile (默认浏览器的路径)函数来打开默认浏览器lockB1wser.exe文件,得到对应的文件句柄hNewFile,之后,可将文件句柄hNewFile作为参数,调用函数RealNtCreateSect1n (hNewFile),以得到进程句柄hNewSect1n。第三创建模块70可根据该进程句柄hNewSect1n创建默认浏览器1ckBrowser.exe的进程,并将该进程反馈给应用程序,应用程序根据该进程调用默认浏览器lockB1wser.exe。由此,可以达到锁定默认浏览器lockB1wser.exe的目的,并使得用户在应用程序打开网址时可使用锁定的默认浏览器,避免系统浏览器可能会被修改的风险,提高了安全性。
[0047]进一步的,在本发明的一个实施例中,如图4所示,该默认浏览器的控制装置还可包括修改模块80。修改模块80可用于在截取模块30截取系统的进程创建系统函数之前,将SSDT中调用函数地址修改为钩子函数的地址,以使系统的进程创建系统函数在创建进程时执行钩子函数。
[0048]具体而言,在本发明的实施例中,如图4所示,该修改模块80可包括获取单元81和修改单元82。获取单元81可用于获取SSDT,并获取进程创建系统函数在SSDT中的函数地址索引号。修改单元82可用于根据进程创建系统函数在SSDT中的函数地址索引号,将SSDT中的调用函数地址修改为钩子函数的地址,并保存原调用函数地址,以使系统的进程创建系统函数在创建进程时执行钩子函数,即完成Η00Κ。
[0049]其中,在本发明的实施例中,获取单元81获取进程创建系统函数在SSDT中的函数地址索引号的具体实现过程可如下:可先通过系统进程查询函数(如ZwQuerySystemInformat1n)获取系统的进程管理库中的基址;之后,可根据可移植的执行体PE文件结构,获取基址的导出表地址;然后,根据导出表和进程创建系统函数获取进程创建系统函数在SSDT中的函数地址索引号。例如,可枚举该导出表,并将枚举结果与进程创建系统函数进行对比以获取进程创建系统函数在SSDT中的函数地址索引号。
[0050]进一步的,在本发明的一个实施例中,第三创建模块70还可用于在判断映像路径为默认浏览器的路径时,直接创建默认浏览器的进程,以使应用程序调用默认浏览器。更具体地,第三创建模块70在判断模块50判断映像路径为默认浏览器的路径时,可直接根据该映像路径创建默认浏览器的进程,以使应用程序根据该进程调用默认浏览器。
[0051]本发明实施例的默认浏览器的控制装置,可通过接收模块接收应用程序的用于调用浏览器的进程创建请求,第一创建模块根据进程创建请求调用系统的进程创建系统函数以开始创建所要创建的进程,在创建的过程中,截取模块通过钩子函数Hook (挂钩)系统的进程创建系统函数以截获该进程创建系统函数,获取模块获取该进程创建系统函数所要创建的进程所加载的映像路径,判断模块判断加载的映像路径是否为默认浏览器的路径,如果不是,则第二创建模块根据默认浏览器路径创建一个进程句柄,并根据该进程句柄创建默认浏览器的进程,并将该进程反馈至应用程序,以使应用程序根据该进程调用默认浏览器,从而达到锁定默认浏览的目的,由于通过调用系统的进程创建系统函数以创建目标进程,使得在执行系统调用时执行的是内核代码,从而使得整个工作处于内核态,所以不存在权限问题,并且不需要将DLL注入目标进程,减少了对目标进程的内存占用,提高了系统性會K。
[0052]此外,本发明还提出了一种终端,需要说明的是,在本发明的实施例中,终端可理解是PC(Personal Computer,个人计算机)端。该终端可包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为终端的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
[0053]S101’,接收应用程序的用于调用浏览器的进程创建请求,并根据进程创建请求调用系统的进程创建系统函数以创建所要创建的进程。
[0054]S102’,截取系统的进程创建系统函数,并获取进程创建系统函数所要创建的进程所加载的映像路径。
[0055]S103’,判断映像路径是否为默认浏览器的路径。
[0056]S104’,如果判断映像路径不为默认浏览器的路径,则根据默认浏览器的路径创建进程句柄。
[0057]S105’,根据进程句柄创建默认浏览器的进程,并将进程反馈至应用程序,以使应用程序根据进程调用默认浏览器。
[0058]本发明实施例的终端,可先接收应用程序的用于调用浏览器的进程创建请求,之后可根据进程创建请求调用系统的进程创建系统函数以开始创建所要创建的进程,在创建的过程中,可通过钩子函数Hook(挂钩)系统的进程创建系统函数以截获该进程创建系统函数所要创建的进程所加载的映像路径,并判断加载的映像路径是否为默认浏览器的路径,如果不是,则根据默认浏览器路径创建一个进程句柄,并根据该进程句柄创建默认浏览器的进程,并将该进程反馈至应用程序,以使应用程序根据该进程调用默认浏览器,从而达到锁定默认浏览的目的,由于通过调用系统的进程创建系统函数以创建目标进程,使得在执行系统调用时执行的是内核代码,从而使得整个工作处于内核态,所以不存在权限问题,并且不需要将DLL注入目标进程,减少了对目标进程的内存占用,提高了系统性能。
[0059]在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0060]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0061]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0062]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功
能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0063]本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0064]此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0065]上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0066]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0067]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【主权项】
1.一种默认浏览器的控制方法,其特征在于,包括以下步骤: 接收应用程序的用于调用浏览器的进程创建请求,并根据所述进程创建请求调用系统的进程创建系统函数以创建所要创建的进程; 截取所述系统的进程创建系统函数,并获取所述进程创建系统函数所要创建的进程所加载的映像路径; 判断所述映像路径是否为默认浏览器的路径; 如果判断映像路径不为所述默认浏览器的路径,则根据所述默认浏览器的路径创建进程句柄;以及 根据所述进程句柄创建所述默认浏览器的进程,并将所述进程反馈至所述应用程序,以使所述应用程序根据所述进程调用所述默认浏览器。2.如权利要求1所述的默认浏览器的控制方法,其特征在于,所述截取所述系统的进程创建系统函数,具体包括: 通过钩子函数截取所述系统的进程创建系统函数,其中,所述钩子函数用于在被执行时获取所述映像路径。3.如权利要求2所述的默认浏览器的控制方法,其特征在于,在所述截取所述系统的进程创建系统函数之前,所述控制方法还包括: 将系统服务描述符表SSDT中调用函数地址修改为所述钩子函数的地址,以使所述系统的进程创建系统函数在创建进程时执行所述钩子函数。4.如权利要求3所述的默认浏览器的控制方法,其特征在于,所述将系统服务描述符表SSDT中调用函数地址修改为所述钩子函数的地址,具体包括: 获取所述系统服务描述符表SSDT,并获取所述进程创建系统函数在所述系统服务描述符表SSDT中的函数地址索引号; 根据所述进程创建系统函数在所述系统服务描述符表SSDT中的函数地址索引号,将所述系统服务描述符表SSDT中的调用函数地址修改为所述钩子函数的地址。5.如权利要求4所述的默认浏览器的控制方法,其特征在于,所述获取进程创建系统函数在所述系统服务描述符表SSDT中的函数地址索引号具体包括: 通过系统进程查询函数获取所述系统的进程管理库中的基址; 根据可移植的执行体PE文件结构,获取所述基址的导出表地址; 根据所述导出表和所述进程创建系统函数获取所述进程创建系统函数在所述系统服务描述符表SSDT中的函数地址索引号。6.如权利要求1所述的默认浏览器的控制方法,其特征在于,还包括: 如果判断映像路径为所述默认浏览器的路径,则直接创建所述默认浏览器的进程,以使所述应用程序调用所述默认浏览器。7.一种默认浏览器的控制装置,其特征在于,包括: 接收模块,用于接收应用程序的用于调用浏览器的进程创建请求; 第一创建模块,用于根据所述进程创建请求调用系统的进程创建系统函数以创建所要创建的进程; 截取模块,用于截取所述系统的进程创建系统函数; 获取模块,用于获取所述进程创建系统函数所要创建的进程所加载的映像路径; 判断模块,用于判断所述映像路径是否为默认浏览器的路径; 第二创建模块,用于在判断映像路径不为所述默认浏览器的路径时,根据所述默认浏览器的路径创建进程句柄;以及 第三创建模块,用于根据所述进程句柄创建所述默认浏览器的进程,并将所述进程反馈至所述应用程序,以使所述应用程序根据所述进程调用所述默认浏览器。8.如权利要求7所述的默认浏览器的控制装置,其特征在于,所述截取模块具体用于: 通过钩子函数截取所述系统的进程创建系统函数,其中,所述钩子函数用于在被执行时获取所述映像路径。9.如权利要求7所述的默认浏览器的控制装置,其特征在于,还包括: 修改模块,用于在所述截取所述系统的进程创建系统函数之前,将系统服务描述符表SSDT中调用函数地址修改为所述钩子函数的地址,以使所述系统的进程创建系统函数在创建进程时执行所述钩子函数。10.如权利要求9所述的默认浏览器的控制装置,其特征在于,所述修改模块包括: 获取单元,用于获取所述系统服务描述符表SSDT,并获取所述进程创建系统函数在所述系统服务描述符表SSDT中的函数地址索引号; 修改单元,用于根据所述进程创建系统函数在所述系统服务描述符表SSDT中的函数地址索引号,将所述系统服务描述符表SSDT中的调用函数地址修改为所述钩子函数的地址。11.如权利要求10所述的默认浏览器的控制装置,其特征在于,所述获取单元具体用于: 通过系统进程查询函数获取所述系统的进程管理库中的基址; 根据可移植的执行体PE文件结构,获取所述基址的导出表地址; 根据所述导出表和所述进程创建系统函数获取所述进程创建系统函数在所述系统服务描述符表SSDT中的函数地址索引号。12.如权利要求7所述的默认浏览器的控制装置,其特征在于,所述第三创建模块还用于在判断映像路径为所述默认浏览器的路径时,直接创建所述默认浏览器的进程,以使所述应用程序调用所述默认浏览器。13.—种终端,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述终端的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤: 接收应用程序的用于调用浏览器的进程创建请求,并根据所述进程创建请求调用系统的进程创建系统函数以创建所要创建的进程; 截取所述系统的进程创建系统函数,并获取所述进程创建系统函数所要创建的进程所加载的映像路径; 判断所述映像路径是否为默认浏览器的路径; 如果判断映像路径不为所述默认浏览器的路径,则根据所述默认浏览器的路径创建进程句柄;以及 根据所述进程句柄创建所述默认浏览器的进程,并将所述进程反馈至所述应用程序,以使所述应用程序根据所述进程调用所述默认浏览器。
【专利摘要】本发明公开了一种默认浏览器的控制方法、装置及终端,其中方法包括:接收应用程序的用于调用浏览器的进程创建请求,并根据该请求调用系统的进程创建系统函数以创建所要创建的进程;截取系统的进程创建系统函数,并获取进程创建系统函数所要创建的进程所加载的映像路径;判断映像路径是否为默认浏览器的路径;若否,则根据默认浏览器的路径创建进程句柄以及根据进程句柄创建默认浏览器的进程,并将进程反馈至应用程序,以使应用程序根据进程调用默认浏览器。该方法通过调用系统的进程创建系统函数以创建目标进程,使得在执行系统调用时执行的是内核代码,使得整个工作处于内核态,不存在权限问题,提高默认浏览器控制的成功率,提高系统性能。
【IPC分类】G06F9/44
【公开号】CN104881291
【申请号】CN201510300373
【发明人】杨振辉
【申请人】北京金山安全软件有限公司
【公开日】2015年9月2日
【申请日】2015年6月3日
转载请注明原文地址:https://www.famiwei.com/read-8138784.html