CN104539584A - 浏览器防注入方法、浏览器客户端和装置 - Google Patents
浏览器防注入方法、浏览器客户端和装置 Download PDFInfo
- Publication number
- CN104539584A CN104539584A CN201410740794.5A CN201410740794A CN104539584A CN 104539584 A CN104539584 A CN 104539584A CN 201410740794 A CN201410740794 A CN 201410740794A CN 104539584 A CN104539584 A CN 104539584A
- Authority
- CN
- China
- Prior art keywords
- window message
- browser
- window
- operating system
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000002347 injection Methods 0.000 title claims abstract description 29
- 239000007924 injection Substances 0.000 title claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 24
- 230000006870 function Effects 0.000 claims description 180
- 238000009434 installation Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 35
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011900 installation process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种浏览器防注入的方法,涉及浏览器技术领域。所述方法包括:加载用于拦截窗口消息的窗口消息钩子函数;针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。根据本发明的浏览器防注入的方法,可以通过加载全局的窗口消息钩子函数,拦截操作系统中的窗口消息,判断该窗口消息是否为劫持浏览器的窗口消息,由此解决了其他应用程序向浏览器注入dll导致浏览器不安全的问题,取得了可以防止其他应用程序向浏览器注入不安全的dll以劫持浏览器,进而提高浏览器安全性的有益效果。
Description
技术领域
本发明涉及浏览器技术领域,具体涉及一种浏览器防注入方法、一种浏览器客户端和带有浏览器客户端的装置。
背景技术
浏览器是指可以显示网页服务器或者文件系统的HTML(超文本标记语言,HyperText Mark-up Language))文件内容,并让用户与这些文件交互的一种软件。网页浏览器主要通过HTTP协议与网页服务器交互并获取网页,这些网页由URL(统一资源定位符,Uniform Resource Locator)指定,文件格式通常为HTML。
在浏览器使用过程中,可能有其他程序向浏览器注入一些动态链接库,以控制浏览器执行自己需要的逻辑,比如网络请求被重定向到不安全网页、收藏夹里自动反复添加不安全网站、IE选项卡中出现不能更改或被隐藏的项目、获取在网页中的登录名和密码等,因此,这些程序注入的动态链接库对于用户的浏览器来说并不安全。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的浏览器客户端和相应的浏览器防注入方法。
依据本发明的一个方面,提供了一种浏览器防注入的方法,包括:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
优选地,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
优选地,在窗口句柄匹配之后,还包括:
获取所述窗口句柄所属应用程序的验证签名;
对所述验证签名进行验证,如果所述验证失败,则确定所述窗口消息为劫持浏览器的窗口消息。
优选地,所述针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截。
优选地,所述针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
针对操作系统中的创建窗口的WM_CREATE消息,通过所述窗口消息钩子函数进行拦截。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数包括:
浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
优选地,还包括:
浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
优选地,所述浏览器向当前操作系统中的第一操作系统服务发送加载请求,包括:
所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
优选地,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
优选地,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
优选地,所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数,包括:
所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
优选地,在以加载用于拦截窗口消息的窗口消息钩子函数之前,还包括:
第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;
如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;
如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述第一操作系统服务判断所述加载请求的发送方是否为指定浏览器包括:
解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
优选地,在加载用于拦截窗口消息的窗口消息钩子函数之前,还包括:
所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;
如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;
如果所述加载请求的发送方是指定浏览器,则加载用于拦截窗口消息的窗口消息钩子函数。
优选地,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器包括:
所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
依据本发明的另外一个方面,提供了一种浏览器客户端,包括:
内核组件,其配置为处理接收到的窗口消息;
防注入组件,具体包括:
全局钩子加载模组,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,所述全局钩子加载模组包括:
第一加载模组,其配置为调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
优选地,所述窗口消息判断模组包括:
窗口句柄判断模组,其配置为将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
优选地,还包括:
窗口签名获取模组,其配置为在所述窗口句柄匹配上之后,获取所述窗口句柄所属应用程序的验证签名;
窗口签名验证模组,其配置为对所述验证签名进行验证,如果所述验证失败,则确定所述窗口消息为劫持浏览器的窗口消息。
优选地,所述窗口消息拦截模组包括:
创建窗口消息拦截模组,其配置为针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截。
优选地,所述创建窗口消息拦截模组包括:
第一创建窗口消息拦截模组,其配置为针对操作系统中的创建窗口的WM_CREATE窗口消息,通过所述窗口消息钩子函数进行拦截。
优选地,所述全局钩子加载模组包括:
请求处理模组,其配置为浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
优选地,还包括:
服务安装模组,其配置为浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
优选地,所述全局钩子加载模组包括:
第一请求发送模组,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
优选地,所述服务安装模组包括:
第一服务安装模组,其配置为获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
服务启动模组,其配置为启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
优选地,所述服务安装模组包括:
服务存在判断模组,其配置为判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
优选地,所述请求处理模组包括:
请求接收模组,其配置为所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
驱动加载模组,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
优选地,所述全局钩子加载模组还包括:
服务服务身份验证模组,其配置为在以加载用于拦截窗口消息的窗口消息钩子函数之前,第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述服务身份验证模组包括:
服务解析验证模组,其配置为解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
优选地,所述全局钩子加载模组还包括:
驱动身份验证模组,其配置为在加载用于拦截窗口消息的窗口消息钩子函数之前,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则加载用于拦截窗口消息的窗口消息钩子函数。
优选地,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述驱动身份验证模组包括:
驱动请求接收模组,其配置为所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
驱动解析验证模组,其配置为解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
依据本发明的另外一个方面,提供了一种带有浏览器客户端的装置,包括:
处理器,以及加载有多条可执行指令的存储器,所述多条指令包括执行以下步骤的方法:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
优选地,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数包括:
浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
根据本发明的浏览器防注入的方法,可以通过加载全局的窗口消息钩子函数,拦截操作系统中的窗口消息,判断该窗口消息是否为劫持浏览器的窗口消息,比如是否为向浏览器注入dll(Dynamic Link Library,动态链接库),如果是,则对停止该窗口消息向浏览器的发送过程,由此解决了其他应用程序向浏览器注入dll导致浏览器不安全的问题,取得了可以防止其他应用程序向浏览器注入不安全的dll以劫持浏览器,进而提高浏览器安全性的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图2示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图3示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图4示出了根据本发明一个实施例的本发明一种浏览器防注入的方法的流程示意图;
图5示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图6示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图7示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图8示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图9示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图10示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图11示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图12示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图13示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图14示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图15示出了根据本发明一个实施例的一种带有浏览器客户端的装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
参照图1,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤110,加载用于拦截窗口消息的窗口消息钩子函数;
在本发明实施例中加载CBT钩子函数WH_CBT,该WH_CBT钩子函数当windows窗口激活、创建、释放(关闭)、最小化、最大化或改变窗口时的窗口消息都可通过该WH_CBT进行拦截。本发明则可以加载上述CBT钩子函数。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
子步骤112,调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
WH_CBT需要通过SetWindowsHookEx函数进行安装,其函数原型为:SetWindowsHookEx(
int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId;
其中,int idHook=WH_CBT;
HOOKPROC lpfn为/钩子过程的指针,也即拦截到指定系统消息后的预处理过程,须定义在DLL中;
HINSTANCE hMod,应用程序实例的句柄,可以为CBT钩子所在DLL;
HINSTANCE hMod,该参数被设置为0,表示此钩子为监视系统所有线程的全局钩子。
由于上述安装逻辑需要以dll的方式实现,而对于dll的加载和运行,则可通过动态链接库加载函数LoadLibrary加载CBT钩子所在的dll,并把CBT钩子的执行逻辑也一并加载。LoadLibrary函数原型如下:
LoadLibraryA(
__in LPCSTR lpLibFileName
);
其中lpLibFileName为dll的名称。
那么通过上述方式,把CBT钩子函数所在的dll进行加载,从而即加载了CBT钩子函数以及其钩取到窗口消息后的处理逻辑。
步骤120,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
在本发明实施例中,当有应用程序向浏览器注入不安全的动态链接库时,其是通过窗口消息控制操作系统向浏览器注入,那么本发明可以在其发送窗口消息时即可通过CBT钩子函数对其进行拦截。
步骤130,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤140;
在本发明实施例中,可以根据拦截的窗口消息的窗口句柄判断其是否为劫持浏览器的窗口消息。
优选地,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
子步骤131,将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
在本发明实施例中,对于浏览器之外的其他应用程序,如果要向浏览器注入劫持浏览器的dll,其需要通过窗口消息启动相应的窗口等操作,在该窗口之下发送执行dll注入过程,windows系统则对接收到窗口消息进行处理,比如执行dll安装过程,将该dll写入浏览器指定位置,将dll的相关参数写入与浏览器相关的注册表项中。而每个窗口均有窗口句柄,那么本发明可以预先对向浏览器注入不符合安全要求的dll的应用程序启动的窗口句柄进行统计,生成窗口句柄黑名单。那么本发明对于拦截到的窗口消息,可以直接通过所述窗口消息获取其所属的窗口句柄,将其与黑名单中的窗口句柄进行匹配,如果匹配上,则确定所述窗口消息为劫持浏览器的窗口消息,即可以通过窗口句柄的匹配结果确定所述窗口消息是否为劫持浏览器的窗口消息。
当然,本发明预置的窗口句柄名单,可以不断根据对应用程序的分析进行更新,其可以通过云服务器更新到客户端中。
步骤140,停止所述窗口消息的传输。
那么对于确定CBT钩子拦截的窗口消息为劫持浏览器的窗口消息后,即可停止该消息的后续传输过程,不让其进行后续处理。比如将所述窗口消息删除。
当然,确定所述窗口消息为劫持浏览器的窗口消息后,还可生成弹出框,提示用户有应用程序向浏览器注入不安全的dll,等待用户选择是否运行该窗口消息继续传输,如果用户选择继续传输,则放弃拦截,如果用户选择不继续传输,则可停止所述窗口消息的传输。
本发明实施例可针对想将dll注入浏览器的应用程序,在其创建窗口、或者在其所在窗口之下发送窗口消息时即对其进行拦截,即在应用程序执行具体的dll注入过程之前就进行拦截,然后对窗口消息进行判断,当根据窗口消息判断其为劫持浏览器的消息时,则停止窗口消息的传输,不让其进行后续操作,可以直接防止所述应用程序对浏览器注入不安全的dll,从而保护了浏览器的安全性。
实施例二
参照图2,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤210,加载用于拦截窗口消息的窗口消息钩子函数;
步骤220,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤230,将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则进入步骤240;
如果所述窗口句柄未匹配上,则放行所述窗口消息。
步骤240,获取所述窗口句柄所属应用程序的验证签名;
步骤250,对所述验证签名进行验证;如果验证失败,则确定所述窗口消息为劫持浏览器的窗口消息,进入步骤260;
如果验证成功,则放行所述窗口消息。
在本发明实施例中,对于窗口消息,在判断其窗口句柄在预置的窗口句柄名单之内后,还可以获取所述窗口句柄所属应用程序的验证签名,比如第三方安全平台的验证签名,然后对该数字签名与预先记录的验证签名进行匹配,如果匹配上,则说明该窗口句柄的应用程序安装的dll安全,可以允许其进行安装,如果验证失败,则可认为该窗口句柄的应用程序安装的dll不安全,拒绝其进行安装。
当然,所述验证签名也可以通过云端服务器进行更新。
步骤260,停止所述窗口消息的传输。
本发明实施例可针对想将dll注入浏览器的应用程序,在其创建窗口、或者在其所在窗口之下发送窗口消息时即对其进行拦截,即在应用程序执行具体的dll注入过程之前就进行拦截,然后对窗口消息进行多重判断,使对窗口消息的拦截范围可以灵活的进行配置,允许安全的应用程序向浏览器注入dll,不允许不安全的应用程序向浏览器注入dll,也保护了浏览器的安全性。
实施例三
参照图3,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤310,加载用于拦截窗口消息的窗口消息钩子函数;
步骤320,针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截;
在本发明实施例中,可以理解,当一个应用程序要向浏览器注入dll时,其需要执行安装过程,而安装过程在windows系统首先需要创建一个安装用的窗口,本发明实施例则可只拦截创建窗口的窗口消息,本发明实施例则可只拦截创建窗口的窗口消息,可判断其是否为向浏览器注入不安全的dll的应用程序的窗口消息。
优选地,所述针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
子步骤321,针对操作系统中的创建窗口的WM_CREATE消息,通过所述窗口消息钩子函数进行拦截。
WM_CREATE是windows中一个窗口消息,当一个应用程序通过CreateWindowEx函数或者CreateWindow函数请求创建窗口时发送此消息。那么应用程序创建向浏览器注入dll的安装窗口时,也会发送WM_CREATE消息。那么本发明即可通过CBT钩子就可拦截到应用程序创建的所述安装窗口的WM_CREATE消息。
步骤330,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤340;
如果所述窗口消息不是劫持浏览器的窗口消息,则放行所述窗口消息。
在本发明实施例中可以通过WM_CREATE消息创建窗口的窗口句柄与预置的窗口句柄名单进行匹配,如果匹配上,则确定窗口消息是否为劫持浏览器的窗口消息。当然,也可以获取所述WM_CREATE消息所属应用程序的验证签名,对验证签名进行验证,如果验证失败,则确定窗口消息是否为劫持浏览器的窗口消息。
步骤340,停止所述窗口消息的传输。
本发明实施例则可只拦截创建窗口的窗口消息,当其为预先记录的要向浏览器注入不安全dll的应用程序发送的创建窗口的消息,则可停止对应窗口的创建,从而避免应用程序将不安全的dll注入浏览器。并且由于只拦截创建窗口的窗口消息,不拦截其他类型的窗口消息,降低了拦截的范围,避免占用过多的系统资源。
实施例四
参照图4,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤410,浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数;
在本发明实施例中,浏览器本身的权限级别较低,可以直接向当前操作系统中的第一操作系统服务发送加载请求,以便述第一操作系统服务通过调用一虚拟的设备级驱动程序加载用于拦截窗口消息的窗口消息钩子函数。
其中加载时,所述设备级驱动程序调用LoadLibrary加载CBT钩子函数。
步骤420,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤430,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤440;
步骤440,停止所述窗口消息的传输。
优选地,还包括:
子步骤400,浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
在本发明实施例中,直接加载全局钩子函数,由于浏览器是用户级的权限,其权限级别低,可能超出了系统或者说杀毒软件对权限的设置而不能执行上述加载。因此需要以服务的形式提升转换的权限。
那么本发明中,浏览器可以预先获取第一操作系统服务的安装文件并进行安装,在重新启动后,所述服务即可随机启动。服务在操作系统中的权限级别相对较高,其可以较少受限的执行上述操作。
当然,本发明实施例也可以在执行过程中判断第一操作系统服务是否安装。优选地,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
子步骤411,判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
第一操作系统服务也是一个进程,启动后其具有进程名等信息,那么浏览器可以查询操作系统中当前启动的进程中是否有所述第一操作系统服务的进程名,如果有,说明已经安装过第一操作系统服务,反之,则还没有安装过所述第一操作系统服务。
优选地,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
子步骤412,获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
在实际中,所述第一操作系统服务的安装文件还包括虚拟的设备级驱动程序,在安装时可以一并进行安装。在第一操作系统服务不使用时不会通过其dll中的逻辑去调用所述虚拟的设备级驱动程序。
虚拟的设备级驱动程序属于内核级程序,其具有操作系统的最高权限,因此对于源节点的替换,通过虚拟的设备级驱动可以更容易的执行。
子步骤413,启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
第一操作系统服务安装时会在系统文件中生成一个dll文件,并将该dll的相关参数写入操作系统服务的注册表中。同时,会将虚拟的设备级驱动程序的sys文件安装至操作系统,并将sys文件的相关参数写入注册表中。操作系统启动后,会启动第一操作系统服务的exe文件,等待浏览器进程的通知。
优选地,所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数,包括:
子步骤414,所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
在本发明实施例中,第一操作系统服务会随系统启动而启动,并一直维持运行,监听是否收到浏览器发送的请求,如果接收到浏览器发送的加载请求,则会根据所述加载请求创建I/O请求包(I/O Request Packet,IRP)下发至所述虚拟的设备级驱动。因为windows操作系统从应用层向底层驱动传送指令是通过I/O请求包传输的。第一操作系统服务调用本发明实施例中虚拟的设备级驱动,则标需要以所述设备级驱动为目构建IRP,然后将所述IRP下发至所述设备级驱动中。所述IRP包括控制所述设备级驱动加载CBT钩子函数的信息,比如CBT钩子函数所在dll的路径。
子步骤415,所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
所述虚拟的设备级确定程序接收到所述第一操作系统服务下发的I/O请求包后,解析所述I/O请求包中的指令,得到CBT钩子函数所在dll的信息,那么可以调用动态链接库加载函数,加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
通过上述方式,即加载CBT钩子函数。
在本发明实施例中第一操作系统服务可以在浏览器安装时作为浏览器的一部分进程安装,作为浏览器的一个功能模块。
本发明实施例则可只拦截创建窗口的窗口消息,当其为预先记录的要向浏览器注入不安全dll的应用程序发送的创建窗口的消息,则可停止对应窗口的创建,从而避免应用程序将不安全的dll注入浏览器。并且由于只拦截创建窗口的窗口消息,不拦截其他类型的窗口消息,降低了拦截的范围,避免占用过多的系统资源;并且以内核级权限进行CBT的加载,避免了操作系统对加载的权限限制而加载失败。
实施例五
参照图5,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤510,浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;
步骤520,所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数;
在本发明实施例中,浏览器本身没有设置第一操作系统服务的功能,而独立于浏览器的第二应用程序具有设置第一操作系统服务的功能,比如360安全卫士、360网盾等程序。那么浏览器可以通过预置的对外接口向独立的第二应用程序发送加载请求,所述加载请求包括CBT钩子函数的dll信息。独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动加载所述CBT钩子的dll。
步骤530,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤540,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤550;
步骤550,停止所述窗口消息的传输。
本发明示例对于第一操作系统服务和虚拟的设备级驱动的处理过程与实施例四类似。
本发明实施例则可只拦截创建窗口的窗口消息,当其为预先记录的要向浏览器注入不安全dll的应用程序发送的创建窗口的消息,则可停止对应窗口的创建,从而避免应用程序将不安全的dll注入浏览器。并且由于只拦截创建窗口的窗口消息,不拦截其他类型的窗口消息,降低了拦截的范围,避免占用过多的系统资源;本发明实施例可以利用第三方应用程序的权限,通过第一操作系统服务通过调用一虚拟的设备级驱动程序以内核级权限进行CBT的加载,避免了操作系统对加载的权限限制而加载失败。
实施例六
参照图6,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤610,浏览器向当前操作系统中的第一操作系统服务发送加载请求;
步骤620,所述第一操作系统服务接收到所述加载请求后,第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序,进入步骤630。
在本发明实施例中,为了避免非用户选择的浏览器或者第三方合作的浏览器使用本发明实施例提及的防注入功能,增加系统资源的消耗,可以在第一操作系统服务中设置浏览器的黑名单。然后获取所述加载请求的发送方的身份信息,与第一操作系统服务中记录的浏览器黑名单进行匹配,如果未匹配上,不进入防注入过程;如果匹配上,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述加载请求包括所述浏览器的身份验证信息;所述身份验证信息比如浏览器名,或者说浏览器的签名信息,当然也可以是其他唯一性的身份验证信息。
进一步的,所述第一操作系统服务判断所述加载请求的发送方是否为指定浏览器包括:
子步骤621,解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
那么将浏览器名与第一操作系统服务中记录的浏览器名进行匹配,或者将浏览器的签名信息与第一操作系统服务中记录的浏览器的签名信息进行匹配,如果匹配上,则认为所述加载请求的发送方是指定浏览器,可以利用设备级驱动执行防注入功能。
步骤630,所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
步骤640,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤650,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤660;
步骤660,停止所述窗口消息的传输。
实施例七
参照图7,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤710,浏览器向当前操作系统中的第一操作系统服务发送加载请求;
步骤720,所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
步骤730,所述虚拟的设备级驱动程序接收到所述I/O请求包后,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则进入步骤740;
在本发明实施例中,为了避免非用户选择的浏览器或者第三方合作的浏览器使用本发明实施例提及的防注入功能,增加系统资源的消耗,可以在虚拟的设备级驱动程序中设置浏览器的黑名单。然后根据所述IRP包获取所述加载请求的发送方的身份信息,与虚拟的设备级驱动程序中记录的浏览器黑名单进行匹配,如果未匹配上,不进入防注入过程;如果匹配上,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述加载请求包括所述浏览器的身份验证信息;所述身份验证信息比如浏览器名,或者说浏览器的签名信息,当然也可以是其他唯一性的身份验证信息;
进一步的,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器包括:
子步骤731,所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
浏览器会将注册表路径设置请求发送至第一操作系统服务,第一操作系统服务则会基于注册表路径设置请求包括的不允许访问节点的注册表位置信息和对应该不允许访问节点的虚拟节点的路径,以及浏览器的身份验证信息重新封装为IRP,再把IRP发送至所述设备级驱动程序。
子步骤732,解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
所述设备级驱动程序接收到第一操作系统服务发送的I/O请求包,则会解析其中包括的不允许访问节点的注册表位置信息和对应该不允许访问节点的虚拟节点的路径,以及浏览器的身份验证信息,然后将将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
步骤740,所述虚拟的设备级驱动程序加载用于拦截窗口消息的窗口消息钩子函数。
步骤750,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤760,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤770;
步骤770,停止所述窗口消息的传输。
实施例八
参照图8,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件810,其配置为处理接收到的窗口消息;
防注入组件820,具体包括:
全局钩子加载模组821,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组822,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组823,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组824,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,所述全局钩子加载模组821包括:
第一加载模组,其配置为调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
优选地,所述窗口消息判断模组823包括:
窗口句柄判断模组,其配置为将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
实施例九
参照图9,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件910,其配置为处理接收到的窗口消息;
防注入组件920,具体包括:
全局钩子加载模组921,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组922,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组923,具体包括:
窗口句柄判断模组9231,其配置为将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则进入窗口签名获取模组9232;
窗口签名获取模组9232,其配置为在所述窗口句柄匹配上之后,获取所述窗口句柄所属应用程序的验证签名;
窗口签名验证模组9233,其配置为对所述验证签名进行验证,如果所述验证失败,则确定所述窗口消息为劫持浏览器的窗口消息;
窗口消息停止模组924,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
实施例十
参照图10,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1010,其配置为处理接收到的窗口消息;
防注入组件1020,具体包括:
全局钩子加载模组1021,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组1022,包括:
创建窗口消息拦截模组10221,其配置为针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1023,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组1024,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,所述创建窗口消息拦截模组10221包括:
第一创建窗口消息拦截模组,其配置为针对操作系统中的创建窗口的WM_CREATE窗口消息,通过所述窗口消息钩子函数进行拦截。
实施例十一
参照图11,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1110,其配置为处理接收到的窗口消息;
防注入组件1120,具体包括:
全局钩子加载模组1121,包括:
请求处理模组11211,其配置为浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组1122,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1123,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组1124,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,还包括:
服务安装模组,其配置为浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
优选第,所述服务安装模组包括:
第一服务安装模组,其配置为获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
服务启动模组,其配置为启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
优选地,所述服务安装模组包括:
服务存在判断模组,其配置为判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
优选地,所述请求处理模组包括:
请求接收模组,其配置为所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
驱动加载模组,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
实施例十二
参照图12,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1210,其配置为处理接收到的窗口消息;
防注入组件1220,具体包括:
全局钩子加载模组1221,包括:
第一请求发送模组12211,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
窗口消息拦截模组1222,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1223,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组1224,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
实施例十三
参照图13,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1310,其配置为处理接收到的窗口消息;
防注入组件1320,具体包括:
全局钩子加载模组1321,包括:
请求发送模组13211,其配置为浏览器向当前操作系统中的第一操作系统服务发送加载请求;
服务服务身份验证模组13212,其配置为在以加载用于拦截窗口消息的窗口消息钩子函数之前,第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
驱动加载模组13213,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组1322,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1323,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组1324,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述服务身份验证模组13212包括:
服务解析验证模组,其配置为解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
实施例十四
参照图14,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1410,其配置为处理接收到的窗口消息;
防注入组件1420,具体包括:
全局钩子加载模组1421,包括:
请求发送模组14211,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;
请求接收模组14212,其配置为所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
驱动身份验证模组14213,其配置为在加载用于拦截窗口消息的窗口消息钩子函数之前,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组1422,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1423,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组1424,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述驱动身份验证模组包括:
驱动请求接收模组,其配置为所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
驱动解析验证模组,其配置为解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
实施例十五
参照图15,其示出了本发明一种带有浏览器客户端的装置的结构示意图,所述带有浏览器客户端的装置1500具体可以包括:
处理器1510,以及加载有多条可执行指令的存储器1520,所述多条指令包括执行以下步骤的方法:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
优选地,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数包括:
浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
当然,所述多条指令还包括执行前述介绍的各种方法的步骤。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器防注入设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出转换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
A1、一种浏览器防注入的方法,包括:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
A2、如A1所述的方法,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
A3、如A1所述的方法,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
A4、如A3所述的方法,在窗口句柄匹配之后,还包括:
获取所述窗口句柄所属应用程序的验证签名;
对所述验证签名进行验证,如果所述验证失败,则确定所述窗口消息为劫持浏览器的窗口消息。
A5、如A1所述的方法,所述针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截。
A6、如A1所述的方法,所述针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
针对操作系统中的创建窗口的WM_CREATE消息,通过所述窗口消息钩子函数进行拦截。
A7、如A1所述的方法,所述加载用于拦截窗口消息的窗口消息钩子函数包括:
浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
A8、如A7所述的方法,还包括:
浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
A9、如A1所述的方法,所述浏览器向当前操作系统中的第一操作系统服务发送加载请求,包括:
所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
A10、如A8所述的方法,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
A11、如A8所述的方法,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
A12、如A7或A9所述的方法,所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数,包括:
所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
A13、如A12所述的方法,在以加载用于拦截窗口消息的窗口消息钩子函数之前,还包括:
第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;
如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;
如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
A14、如A13所述的方法,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述第一操作系统服务判断所述加载请求的发送方是否为指定浏览器包括:
解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
A15、如A12所述的方法,在加载用于拦截窗口消息的窗口消息钩子函数之前,还包括:
所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;
如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;
如果所述加载请求的发送方是指定浏览器,则加载用于拦截窗口消息的窗口消息钩子函数。
A16、如A15所述的方法,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器包括:
所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
本发明还公开了B17、一种浏览器客户端,包括:
内核组件,其配置为处理接收到的窗口消息;
防注入组件,具体包括:
全局钩子加载模组,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
B18、如B17所述的浏览器客户端,所述全局钩子加载模组包括:
第一加载模组,其配置为调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
B19、如B17所述的浏览器客户端,所述窗口消息判断模组包括:
窗口句柄判断模组,其配置为将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
B20、如B19所述的浏览器客户端,还包括:
窗口签名获取模组,其配置为在所述窗口句柄匹配上之后,获取所述窗口句柄所属应用程序的验证签名;
窗口签名验证模组,其配置为对所述验证签名进行验证,如果所述验证失败,则确定所述窗口消息为劫持浏览器的窗口消息。
B21、如B17所述的浏览器客户端,所述窗口消息拦截模组包括:
创建窗口消息拦截模组,其配置为针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截。
B22、如B17所述的浏览器客户端,所述创建窗口消息拦截模组包括:
第一创建窗口消息拦截模组,其配置为针对操作系统中的创建窗口的WM_CREATE窗口消息,通过所述窗口消息钩子函数进行拦截。
B23、如B17所述的浏览器客户端,所述全局钩子加载模组包括:
请求处理模组,其配置为浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
B24、如B23所述的浏览器客户端,还包括:
服务安装模组,其配置为浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
B25、如B17所述的浏览器客户端,所述全局钩子加载模组包括:
第一请求发送模组,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
B26、如B24所述的浏览器客户端,所述服务安装模组包括:
第一服务安装模组,其配置为获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
服务启动模组,其配置为启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
B27、如B24所述的浏览器客户端,所述服务安装模组包括:
服务存在判断模组,其配置为判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
B28、如B23或B25所述的浏览器客户端,所述请求处理模组包括:
请求接收模组,其配置为所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
驱动加载模组,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
B29、如B25所述的浏览器客户端,所述全局钩子加载模组还包括:
服务服务身份验证模组,其配置为在以加载用于拦截窗口消息的窗口消息钩子函数之前,第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
B30、如B29所述的浏览器客户端,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述服务身份验证模组包括:
服务解析验证模组,其配置为解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
B31、如B28所述的浏览器客户端,所述全局钩子加载模组还包括:
驱动身份验证模组,其配置为在加载用于拦截窗口消息的窗口消息钩子函数之前,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则加载用于拦截窗口消息的窗口消息钩子函数。
B32、如B31所述的浏览器客户端,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述驱动身份验证模组包括:
驱动请求接收模组,其配置为所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
驱动解析验证模组,其配置为解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
本发明还公开了C33、一种带有浏览器客户端的装置,包括:
处理器,以及加载有多条可执行指令的存储器,所述多条指令包括执行以下步骤的方法:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
C34、如C33所述的带有浏览器客户端的装置,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
C35、如C33所述的带有浏览器客户端的装置,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
C36、如C33所述的带有浏览器客户端的装置,所述加载用于拦截窗口消息的窗口消息钩子函数包括:
浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
Claims (10)
1.一种浏览器防注入的方法,包括:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
2.如权利要求1所述的方法,其特征在于,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
3.如权利要求1所述的方法,其特征在于,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
4.如权利要求3所述的方法,其特征在于,在窗口句柄匹配之后,还包括:
获取所述窗口句柄所属应用程序的验证签名;
对所述验证签名进行验证,如果所述验证失败,则确定所述窗口消息为劫持浏览器的窗口消息。
5.如权利要求1所述的方法,其特征在于,所述针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截。
6.如权利要求1所述的方法,其特征在于,所述针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
针对操作系统中的创建窗口的WM_CREATE消息,通过所述窗口消息钩子函数进行拦截。
7.如权利要求1所述的方法,其特征在于,所述加载用于拦截窗口消息的窗口消息钩子函数包括:
浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
8.如权利要求7所述的方法,其特征在于,还包括:
浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
9.一种浏览器客户端,包括:
内核组件,其配置为处理接收到的窗口消息;
防注入组件,具体包括:
全局钩子加载模组,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
10.一种带有浏览器客户端的装置,包括:
处理器,以及加载有多条可执行指令的存储器,所述多条指令包括执行以下步骤的方法:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410740794.5A CN104539584B (zh) | 2014-12-05 | 2014-12-05 | 浏览器防注入方法、浏览器客户端和装置 |
PCT/CN2015/094843 WO2016086765A1 (zh) | 2014-12-05 | 2015-11-17 | 浏览器防注入方法、浏览器客户端和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410740794.5A CN104539584B (zh) | 2014-12-05 | 2014-12-05 | 浏览器防注入方法、浏览器客户端和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104539584A true CN104539584A (zh) | 2015-04-22 |
CN104539584B CN104539584B (zh) | 2018-01-19 |
Family
ID=52855053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410740794.5A Active CN104539584B (zh) | 2014-12-05 | 2014-12-05 | 浏览器防注入方法、浏览器客户端和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104539584B (zh) |
WO (1) | WO2016086765A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468674A (zh) * | 2015-11-12 | 2016-04-06 | 珠海市君天电子科技有限公司 | 窗口拦截方法、装置和终端设备 |
WO2016086765A1 (zh) * | 2014-12-05 | 2016-06-09 | 北京奇虎科技有限公司 | 浏览器防注入方法、浏览器客户端和装置 |
CN106169046A (zh) * | 2016-07-04 | 2016-11-30 | 北京金山安全软件有限公司 | 防止消息钩子注入的方法、装置和终端设备 |
CN106203087A (zh) * | 2015-04-29 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 注入防护方法和系统 |
CN106658195A (zh) * | 2015-11-04 | 2017-05-10 | 珠海市君天电子科技有限公司 | 一种视频广告拦截方法及装置 |
CN106649417A (zh) * | 2015-11-04 | 2017-05-10 | 珠海市君天电子科技有限公司 | 一种窗口拦截方法及装置 |
CN106709331A (zh) * | 2016-11-01 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种消息钩子防注入方法、装置以及客户端 |
CN106873948A (zh) * | 2015-12-10 | 2017-06-20 | 珠海市君天电子科技有限公司 | 日历显示方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997290B2 (en) | 2018-10-03 | 2021-05-04 | Paypal, Inc. | Enhancing computer security via detection of inconsistent internet browser versions |
CN112256339B (zh) * | 2019-07-22 | 2023-11-03 | 百度在线网络技术(北京)有限公司 | 多进程管理方法、装置、电子设备和存储介质 |
CN113672221A (zh) * | 2021-07-28 | 2021-11-19 | 安徽省水利水电勘测设计研究总院有限公司 | 基于QML的MicroStation平台图形用户界面构建方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130061323A1 (en) * | 2008-04-23 | 2013-03-07 | Trusted Knight Corporation | System and method for protecting against malware utilizing key loggers |
CN103218561A (zh) * | 2013-03-18 | 2013-07-24 | 珠海市君天电子科技有限公司 | 一种保护浏览器的防篡改方法和装置 |
CN103617395A (zh) * | 2013-12-06 | 2014-03-05 | 北京奇虎科技有限公司 | 一种基于云安全拦截广告程序的方法、装置和系统 |
CN103617092A (zh) * | 2013-11-21 | 2014-03-05 | 北京奇虎科技有限公司 | 一种基于浏览器的插件运行方法和装置 |
CN104123276A (zh) * | 2013-04-23 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 一种浏览器中弹窗的拦截方法、装置和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123120B (zh) * | 2013-04-23 | 2016-03-16 | 腾讯科技(深圳)有限公司 | 一种浏览器页面数据过滤方法、装置和系统 |
CN104539584B (zh) * | 2014-12-05 | 2018-01-19 | 北京奇虎科技有限公司 | 浏览器防注入方法、浏览器客户端和装置 |
-
2014
- 2014-12-05 CN CN201410740794.5A patent/CN104539584B/zh active Active
-
2015
- 2015-11-17 WO PCT/CN2015/094843 patent/WO2016086765A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130061323A1 (en) * | 2008-04-23 | 2013-03-07 | Trusted Knight Corporation | System and method for protecting against malware utilizing key loggers |
CN103218561A (zh) * | 2013-03-18 | 2013-07-24 | 珠海市君天电子科技有限公司 | 一种保护浏览器的防篡改方法和装置 |
CN104123276A (zh) * | 2013-04-23 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 一种浏览器中弹窗的拦截方法、装置和系统 |
CN103617092A (zh) * | 2013-11-21 | 2014-03-05 | 北京奇虎科技有限公司 | 一种基于浏览器的插件运行方法和装置 |
CN103617395A (zh) * | 2013-12-06 | 2014-03-05 | 北京奇虎科技有限公司 | 一种基于云安全拦截广告程序的方法、装置和系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016086765A1 (zh) * | 2014-12-05 | 2016-06-09 | 北京奇虎科技有限公司 | 浏览器防注入方法、浏览器客户端和装置 |
CN106203087A (zh) * | 2015-04-29 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 注入防护方法和系统 |
CN106203087B (zh) * | 2015-04-29 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 注入防护方法、系统、终端以及存储介质 |
CN106658195A (zh) * | 2015-11-04 | 2017-05-10 | 珠海市君天电子科技有限公司 | 一种视频广告拦截方法及装置 |
CN106649417A (zh) * | 2015-11-04 | 2017-05-10 | 珠海市君天电子科技有限公司 | 一种窗口拦截方法及装置 |
CN106658195B (zh) * | 2015-11-04 | 2019-08-23 | 珠海豹趣科技有限公司 | 一种视频广告拦截方法及装置 |
CN105468674A (zh) * | 2015-11-12 | 2016-04-06 | 珠海市君天电子科技有限公司 | 窗口拦截方法、装置和终端设备 |
CN106873948A (zh) * | 2015-12-10 | 2017-06-20 | 珠海市君天电子科技有限公司 | 日历显示方法及装置 |
CN106873948B (zh) * | 2015-12-10 | 2020-03-27 | 珠海豹趣科技有限公司 | 日历显示方法及装置 |
CN106169046A (zh) * | 2016-07-04 | 2016-11-30 | 北京金山安全软件有限公司 | 防止消息钩子注入的方法、装置和终端设备 |
CN106709331A (zh) * | 2016-11-01 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种消息钩子防注入方法、装置以及客户端 |
CN106709331B (zh) * | 2016-11-01 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种消息钩子防注入方法、装置以及客户端 |
Also Published As
Publication number | Publication date |
---|---|
WO2016086765A1 (zh) | 2016-06-09 |
CN104539584B (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104539584A (zh) | 浏览器防注入方法、浏览器客户端和装置 | |
CN105427096B (zh) | 支付安全沙箱实现方法及系统与应用程序监控方法及系统 | |
CN104536981A (zh) | 实现浏览器安全的方法、浏览器客户端和装置 | |
US7596610B2 (en) | Method and system for installing applications via a display page | |
CN107220083B (zh) | 一种安卓系统中免安装运行应用程序的方法和系统 | |
US8230415B1 (en) | On-demand advertising of software packages | |
CN102999354B (zh) | 文件加载方法和装置 | |
RU2377637C2 (ru) | Эффективное исправление программ | |
US20030233483A1 (en) | Executing software in a network environment | |
CN103020520B (zh) | 一种基于企业的文件安全检测方法和系统 | |
CN105207775A (zh) | 验证信息的读取方法及装置 | |
CN103677935A (zh) | 一种应用程序的安装控制方法、系统及装置 | |
CN102970346B (zh) | 浏览器进行软件下载的方法和浏览器 | |
CN104239786A (zh) | 免root主动防御配置方法及装置 | |
US20090113414A1 (en) | Computer administration deployment system | |
CN103023976A (zh) | 一种浏览器应用插件扩展的装置和方法 | |
US8893117B2 (en) | Interactive product improvement through the use of variants and data gathering reports in a system that can be updated on the fly | |
CN103019765B (zh) | 一种文件重定向方法、装置和计算机系统 | |
CN103560997A (zh) | 应用程序下载管理的方法、装置及下载服务器 | |
CN103500114A (zh) | 一种应用程序的安装方法及装置 | |
US20160191633A1 (en) | Method and apparatus for implementing communication from web page to client | |
WO2022246437A9 (en) | Automated interpreted application control for workloads | |
CN112966257A (zh) | 一种应用程序的授权方法及装置 | |
CN103020180A (zh) | 一种基于控制节点部署程序的方法和装置 | |
CN104539585A (zh) | 浏览器防注入的方法、浏览器客户端和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Co-patentee after: Beijing Qizhi Business Consulting Co. Ltd. Patentee after: Beijing Qihu Technology Co., Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Co-patentee before: Qizhi Software (Beijing) Co., Ltd. Patentee before: Beijing Qihu Technology Co., Ltd. |