著录项信息
专利名称 | 病毒防御方法和装置 |
申请号 | CN201310575193.9 | 申请日期 | 2013-11-15 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-02-12 | 公开/公告号 | CN103577757A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F21/56 | IPC分类号 | G;0;6;F;2;1;/;5;6查看分类表>
|
申请人 | 北京奇虎科技有限公司;奇智软件(北京)有限公司 | 申请人地址 | 北京市西城区新街口外大街28号D座112室(德胜园区)
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 | 当前权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 |
发明人 | 胡中;王鑫 |
代理机构 | 北京华沛德权律师事务所 | 代理人 | 刘杰 |
摘要
本发明公开了一种病毒防御方法和装置;其中的病毒防御方法包括:在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层;在应用层,根据所述应用程序标识信息启动病毒扫描应用程序,以使病毒扫描应用程序对所述应用程序进行病毒扫描处理;获取所述病毒扫描处理的扫描结果,并根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知;在框架层,根据所述通知执行所述应用程序的安装操作或者拒绝执行所述应用程序的安装操作。
病毒防御方法和装置\n技术领域\n[0001] 本发明涉及病毒防御技术,具体涉及一种病毒防御方法和装置。\n背景技术\n[0002] 病毒防御对于可以进行网络访问的终端设备来说是非常重要的。为了实现病毒防御,终端设备尤其是智能移动设备,通常都设置有安全管理应用程序,该安全管理应用程序所能够提供的一个主要功能就是病毒查杀。\n[0003] 为了确保终端设备尽可能的不被病毒感染,现有的安全管理应用程序通常会提供应用程序安装的病毒查杀功能;也就是说,在终端设备安装完一应用程序后,安全管理应用程序立即对刚安装的应用程序进行病毒扫描及杀毒处理;一个具体的例子为:在基于Android操作系统的终端设备成功安装了一个应用程序之后,Android操作系统会针对该应用程序的成功安装发出相应的广播,安全管理应用程序在监听到该广播后,启动病毒扫描处理,以检测终端设备刚刚安装完成的应用程序是否携带有病毒;安全管理应用程序可以根据病毒扫描结果向用户提供相应的提示信息,从而安全管理应用程序可以根据用户输入的指示信息执行相应的操作;如安全管理应用程序向用户显示“安装的应用程序携带有病毒,是否卸载该应用程序”的提示信息,安全管理应用程序在接收到用户的卸载指示后,卸载刚安装的应用程序。\n[0004] 发明人在实现本发明过程中发现,上述现有的病毒防御方式并没有尽可能的确保终端设备的安全,具体的说,在Android操作系统中的框架层将应用程序成功安装在终端设备中之后,即使终端设备应用层中的安全管理应用程序扫描出该应用程序携带有病毒,并针对该应用程序执行了卸载处理,然而,由于框架层已经将该应用程序安装在终端设备中,因此该病毒已随着应用程序的成功安装而侵入了终端设备,从而在该应用程序被应用层的安全管理应用程序成功卸载之前,该应用程序携带的病毒很可能已经对终端设备造成了一定的危害。\n发明内容\n[0005] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的病毒防御方法和相应的病毒防御装置。\n[0006] 依据本发明的一个方面,提供了一种病毒防御方法,所述方法包括:在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层;在应用层,根据所述应用程序标识信息启动病毒扫描应用程序,以使病毒扫描应用程序对所述应用程序进行病毒扫描处理;获取所述病毒扫描处理的扫描结果,并根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知;在框架层,根据所述通知执行所述应用程序的安装操作或者拒绝执行所述应用程序的安装操作。\n[0007] 可选的,在上述病毒防御方法中,其中,所述应用层中设置有应用安装监听接口函数,所述框架层中设置有安全服务的安装前包检测接口函数;且所述在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层包括:在Android操作系统的包管理服务中的应用安装接口函数被调用的情况下,所述应用安装接口函数通过所述安装前包检测接口函数将需要安装的应用程序标识信息传输至应用安装监听接口函数,所述安装前包检测接口函数保存应用程序安装的现场数据,且所述应用安装接口函数停止安装操作。\n[0008] 可选的,在上述病毒防御方法中,其中,所述安装前包检测接口函数设置于所述应用安装接口函数的开始位置处,且所述应用安装接口函数通过所述安装前包检测接口函数将需要安装的应用程序标识信息传输至应用安装监听接口函数包括:所述应用安装接口函数被调用时,所述应用安装接口函数调用所述安装前包检测接口函数;所述安装前包检测接口函数从应用安装监听器集合中获取所有回调函数的名称,且所述应用安装监听器集合中包含有应用安装监听接口函数的名称;所述安装前包检测接口函数根据所述回调函数的名称向所有回调函数传输需要安装的应用程序标识信息。\n[0009] 可选的,在上述病毒防御方法中,其中,所述方法还包括:在框架层的应用安装监听器集合中设置应用安装监听接口函数的名称。\n[0010] 可选的,在上述病毒防御方法中,其中,该应用程序标识信息包括:应用程序的URI。\n[0011] 可选的,在上述病毒防御方法中,其中,所述根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知包括:根据所述扫描结果利用应用层中的应用安装恢复类函数或者中止应用安装类函数调用框架层的服务提供的应用安装恢复接口函数或者中止应用安装接口函数,以向框架层发出是否执行所述应用程序的安装操作的通知。\n[0012] 可选的,在上述病毒防御方法中,其中,所述根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知包括:根据所述病毒扫描结果直接向框架层发出是否执行所述应用程序的安装操作的通知;或者,在病毒扫描结果为应用程序携带有病毒的情况下,将所述病毒扫描结果呈现给用户,并根据用户输入的指示信息向框架层发出是否执行所述应用程序的安装操作的通知。\n[0013] 可选的,在上述病毒防御方法中,其中,所述方法还包括:在所述病毒扫描结果为所述应用程序携带有病毒的情况下,直接删除所述应用程序;或者,在所述病毒扫描结果为所述应用程序携带有病毒的情况下,向用户呈现是否删除应用程序的信息,并根据用户输入的指示信息删除/不删除所述应用程序。\n[0014] 根据本发明的另一方面,提供了一种病毒防御装置,该装置包括:应用程序安装模块,适于在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层;启动病毒扫描模块,适于在应用层,根据所述应用程序标识信息启动病毒扫描应用程序,以使病毒扫描应用程序对所述应用程序进行病毒扫描处理;通知模块,适于获取所述病毒扫描处理的扫描结果,并根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知;所述应用程序安装模块还适于,在框架层,根据所述通知执行所述应用程序的安装操作或者拒绝执行所述应用程序的安装操作。\n[0015] 可选的,在上述病毒防御装置中,其中,所述应用层中设置有应用安装监听接口函数,所述应用程序安装模块中设置有包管理服务中的应用安装接口函数以及安全服务的安装前包检测接口函数;且所述在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层包括:在Android操作系统的包管理服务中的应用安装接口函数被调用的情况下,所述应用安装接口函数通过所述安装前包检测接口函数将需要安装的应用程序标识信息传输至应用安装监听接口函数,所述安装前包检测接口函数保存应用程序安装的现场数据,且所述应用安装接口函数停止安装操作。\n[0016] 可选的,在上述病毒防御装置中,其中,所述安装前包检测接口函数设置于所述应用安装接口函数的开始位置处,且所述应用安装接口函数通过所述安装前包检测接口函数将需要安装的应用程序标识信息传输至应用安装监听接口函数包括:所述应用安装接口函数被调用时,所述应用安装接口函数调用所述安装前包检测接口函数;所述安装前包检测接口函数从应用安装监听器集合中获取所有回调函数的名称,且所述应用安装监听器集合中包含有应用安装监听接口函数的名称;所述安装前包检测接口函数根据所述回调函数的名称向所有回调函数传输需要安装的应用程序标识信息。\n[0017] 可选的,在上述病毒防御装置中,其中,所述装置还包括:监听器注册模块,适于在框架层的应用安装监听器集合中设置应用安装监听接口函数的名称。\n[0018] 可选的,在上述病毒防御装置中,其中,该应用程序标识信息包括:应用程序的URI。\n[0019] 可选的,在上述病毒防御装置中,其中,所述根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知包括:通知模块根据所述扫描结果利用应用层中的应用安装恢复类函数或者中止应用安装类函数调用框架层的服务提供的应用安装恢复接口函数或者中止应用安装接口函数,以向框架层发出是否执行所述应用程序的安装操作的通知。\n[0020] 可选的,在上述病毒防御装置中,其中,所述根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知包括:通知模块根据所述病毒扫描结果直接向框架层发出是否执行所述应用程序的安装操作的通知;或者,通知模块在病毒扫描结果为应用程序携带有病毒的情况下,将所述病毒扫描结果呈现给用户,并根据用户输入的指示信息向框架层发出是否执行所述应用程序的安装操作的通知。\n[0021] 可选的,在上述病毒防御装置中,其中,所述装置还包括:应用程序清除模块,适于在所述病毒扫描结果为所述应用程序携带有病毒的情况下,直接删除所述应用程序;或者,适于在所述病毒扫描结果为所述应用程序携带有病毒的情况下,向用户呈现是否删除应用程序的信息,并根据用户输入的指示信息删除/不删除所述应用程序。\n[0022] 本发明的病毒防御方法和装置通过在框架层执行应用程序的安装操作之前,由框架层通知应用层利用病毒扫描应用程序对应用程序进行病毒扫描处理,这样,在应用程序携带有病毒的情况下,应用层可以通知框架层不再执行该应用程序的安装操作,使携带有病毒的应用程序可以不再被框架层安装在终端设备中,从而本发明实施例避免了携带病毒应用程序被框架层安装在终端设备中而给终端设备带来的潜在危害,提高了终端设备的安全性。\n[0023] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。\n附图说明\n[0024] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:\n[0025] 图1示出了根据本发明实施例一的病毒防御方法流程图;\n[0026] 图2示出了根据本发明实施例二的病毒防御方法流程图;\n[0027] 图3示出了根据本发明实施例三的病毒防御装置示意图。\n具体实施方式\n[0028] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。\n[0029] 实施例一、病毒防御方法。下面结合图1对本实施例的方法进行说明。\n[0030] 图1中,S100、在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层。\n[0031] 具体的,本实施例可以在应用层中设置应用安装监听接口函数,在框架层中提供一服务(如安全服务),并为该安全服务设置安装前包检测接口函数;这样,需要安装的应用程序标识信息可以通过框架层的安全服务的安装前包检测接口函数传输给应用层的应用安装监听接口函数。\n[0032] 由于应用程序在安装时,Android操作系统会启动包管理服务,而包管理服务中的应用安装接口函数会被调用,因此,本实施例可以通过对现有的应用安装接口函数中的具体实现流程进行改造,以实现在执行应用程序的安装操作之前先对该应用程序进行病毒扫描,以避免终端设备安装携带有病毒的应用程序的目的。\n[0033] 本实施例可以在应用安装接口函数的开始位置处设置安装前包检测接口函数,这样,在应用安装接口函数被调用执行时,应用安装接口函数中的该安装前包检测接口函数中所包含的具体实现流程首先被执行,而应用安装接口函数中的应用程序的正常安装操作被中断。安装前包检测接口函数的一个主要作用是保存应用程序安装的现场数据(如保存操作系统传入至包管理服务的应用安装接口函数的各个参数信息),并将需要安装的应用程序的标识信息回传给应用层,以便于应用层对需要安装的应用程序进行病毒扫描处理。\n[0034] 本实施例可以通过回调接口的方式将需要安装的应用程序标识信息由框架层传输到应用层;具体的,应用层在框架层中注册应用安装监听器,从而应用层可以通过该应用安装侦听器从框架层获得需要安装的应用程序的标识信息。\n[0035] 一个具体的例子,应用层的安全管理应用程序(如360安全卫士等)可以通过用于设置监听器的类函数在框架层注册应用安装监听器,该应用安装监听器对应的应用安装监听接口函数会被框架层的安装前包检测接口函数所调用(该应用安装监听接口函数为回调函数),从而需要安装的应用程序标识由框架层传输至应用层。\n[0036] 本实施例可以将应用安装监听接口函数的名称设置于框架层的应用安装监听器集合中,这样,安装前包检测接口函数可以从应用安装监听器集合中获取到一个或者多个回调函数的名称(其中至少包含有应用安装监听接口函数的名称),安装前包检测接口函数通过获得的名称调用各回调函数,从而将需要安装的应用程序标识信息传输给各回调函数。\n[0037] 上述应用程序标识信息是指可以唯一定位一应用程序的信息,该应用程序标识信息可以具体为应用程序的URI(Uniform Resource Identifier,通用资源标识)等。\n[0038] S110、在应用层,根据应用程序标识信息启动病毒扫描应用,以使病毒扫描应用程序对该需要安装的应用程序进行病毒扫描处理。\n[0039] 具体的,在应用层,应用安装监听接口函数可以将应用程序标识信息提供给终端设备中的病毒扫描应用程序(该病毒扫描应用程序也可以称为安全管理应用程序,如现有的杀毒应用程序等),并触发病毒扫描应用程序对该应用程序标识信息对应的应用程序进行病毒扫描。\n[0040] S120、获取上述病毒扫描处理的扫描结果,并根据该扫描结果向框架层发出是否执行应用程序的安装操作的通知。\n[0041] 具体的,在病毒扫描应用程序(可以包含在安全管理应用程序中)对需要安装的应用程序病毒扫描完毕,产生并输出病毒扫描结果后,本实施例可以利用应用层中的应用安装恢复类函数或者中止应用安装类函数向框架层发出相应的通知,以使框架层中的应用安装接口函数获知是否应执行该应用程序的安装操作。\n[0042] 一个具体的例子,安全管理应用程序在病毒扫描操作执行完毕后,调用应用层中的应用安装恢复类函数或者中止应用安装类函数,并根据病毒扫描结果设置应用层中的应用安装恢复类函数或者中止应用安装类函数的输入参数;应用层中的应用安装恢复类函数或者中止应用安装类函数再调用框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数,以通知框架层是否执行应用程序的安装操作。\n[0043] 在本实施例中,安全管理应用程序可以在病毒扫描应用程序成功执行了病毒扫描操作后,自动根据病毒扫描结果直接向框架层发出是否执行应用程序的安装操作的通知;\n一个具体的例子,在安全管理应用程序未发现需要安装的应用程序携带有病毒的情况下,安全管理应用程序直接调用应用层中的应用安装恢复类函数或者中止应用安装类函数,并通过应用层中的应用安装恢复类函数或中止应用安装类函数调用框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数,来通知框架层执行该应用程序安装操作;另一个具体的例子,在安全管理应用程序发现需要安装的应用程序携带有病毒的情况下,安全管理应用程序直接调用应用层中的应用安装恢复类函数或者中止应用安装类函数,并通过应用层中的应用安装恢复类函数或者中止应用安装类函数调用框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数,来通知框架层不再执行该应用程序安装操作。\n[0044] 在本实施例中,安全管理应用程序也可以在病毒扫描应用程序成功执行了病毒扫描操作后,根据病毒扫描结果以及用户的指示信息向框架层发出是否执行应用程序的安装操作的通知;一个具体的例子,在安全管理应用程序发现应用程序携带有病毒的情况下,安全管理应用程序提示用户“扫描发现该应用程序携带有病毒,是否仍要安装该应用程序”,安全管理应用程序根据用户输入的指示信息来调用应用层中的应用安装恢复类函数或者中止应用安装类函数,并通过应用层中的应用安装恢复类函数或中止应用安装类函数调用框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数,来通知框架层是否执行该应用程序安装操作。\n[0045] S130、在框架层,根据接收到的通知执行应用程序的安装操作或者拒绝执行应用程序的安装操作。\n[0046] 具体的,框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数在根据应用层中的应用安装恢复类函数或者中止应用安装类函数的输入参数确定出需要执行该应用程序的安装操作的情况下,应先获取前述保存的现场数据,将该现场数据提供给应用安装接口函数,并触发应用安装接口函数执行应用程序的安装操作,从而使应用程序成功安装于终端设备中;框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数在根据应用层中的应用安装恢复类函数或者中止应用安装类函数的输入参数确定出不需要执行该应用程序的安装操作的情况下,可直接丢弃前述保存的现场数据,并不再触发应用安装接口函数执行应用程序的安装操作,从而应用程序不会被安装在终端设备中。\n[0047] 一个具体的例子,框架层中只存在一个应用安装接口函数,该应用安装接口函数的输入参数中包含有恢复安装操作的标志位,在该标志位表示恢复安装操作的情况下,应用安装接口函数在被调用时,不会再执行其中的安装前包检测接口函数,而在该标志位表示非恢复安装操作的情况下,应用安装接口函数在被调用时,应执行其中的安装前包检测接口函数。这样,框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数在决定需要执行该应用程序的安装操作的情况下,调用该应用安装接口函数,将上述保存的现场数据提供给该应用安装接口函数,并将恢复安装操作的标志位设置为表征恢复安装操作的取值,从而应用安装接口函数不再调用安装前包检测接口函数,而直接执行应用程序的安装操作,应用程序被安装在终端设备中;框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数在决定不需要执行该应用程序的安装操作的情况下,直接丢弃前述保存的现场数据即可。\n[0048] 另一个具体的例子,框架层中同时存在有两个应用安装接口函数,这两个应用安装接口函数在函数名称上可以有所区别(如应用安装接口函数A和应用安装接口函数B),其中一个是经本发明改造的应用安装接口函数(即包含有安装前包检测接口函数),而另一个是未经本发明改造的应用安装接口函数(即现有的应用安装接口函数),该未经本发明改造的应用安装接口函数并不能直接被外部调用(如不能被包管理服务直接调用),而只能被框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数所调用。这样,框架层的服务提供的应用安装恢复类函数或中止应用安装类函数在决定需要执行该应用程序的安装操作的情况下,调用未经本发明改造的应用安装接口函数,并将上述保存的现场数据提供给未经本发明改造的应用安装接口函数,从而应用程序的安装操作被执行,应用程序被安装在终端设备中;框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数在决定不需要执行该应用程序的安装操作的情况下,直接丢弃前述保存的现场数据即可。\n[0049] 需要特别说明的是,本实施例在病毒扫描结果为应用程序携带有病毒的情况下,应用层(如安全管理应用程序)可以直接删除该应用程序;也可以先由应用层(如安全管理应用程序)提示用户是否需要删除该应用程序,如果用户指示删除该应用程序,则应用层(如安全管理应用程序)再删除该应用程序,否则,应用层(如安全管理应用程序)不会执行删除该应用程序的操作。\n[0050] 由上述实施例的描述可知,本实施例可以在Android操作系统的框架(Framework)层中的应用安装接口函数中加入Hook(钩子),这样,中断了原有的应用程序安装过程,应用安装接口函数先回调安全管理应用程序的接口函数,以通知应用层安装应用程序这一事件,然后,应用层可以根据病毒扫描结果,决定是否继续框架层的应用程序安装流程;从而可以禁止携带有病毒的应用程序被安装在终端设备中。\n[0051] 实施例二、病毒防御方法。下面结合图2以Android操作系统4.2.2为例,对本实施例的方法进行说明。\n[0052] 在应用(App)层,利用Sdk(软件开发工具包)为安全管理应用程序(如360安全卫士)定义如表1和表2所示的类函数以及接口函数,以便于应用层与Framework(框架)层进行信息交互:\n[0053] 表1\n[0054]\n[0055] 表2\n[0056]\n[0057]\n[0058] 在Framework层,新增一个服务,该服务的名称可以为SecurityService(网络安全服务),该服务提供如下接口函数:\n[0059] //在应用程序实际安装开始之前,调用表1所示的接口函数,以通知应用层的安全管理应用程序有个应用程序要被安装到终端设备中:\n[0060]\n[0061] 上述packageURI、observer、flags、installerPackageName、VerificationParams以及encryptionParams为应用程序的正常安装操作被中断时,应保存的现场数据,且packageURI、observer、flags、installerPackageName、VerificationParams以及encryptionParams通常也是操作系统传入至包管理服务的信息。\n[0062] //通知包管理服务(PackageManagerService)是否要安装指定的应用程序,即是否触发实际的安装操作:\n[0063] //uri:表示应用程序的位置信息\n[0064] //abort:true表示放弃安装该应用程序,false表示安装该应用程序。\n[0065] public void resumeOrAbortInstall(Uri uri, boolean abort)[0066] 需要特别说明的是,上述checkPkgPreInstall()是本发明实施例在应用安装接口函数(即installPackageWithVerificationAndEncryption()接口函数)的开始位置处新增的内容。也就是说,本发明对现有的应用安装接口函数进行了改造,下面以一个具体的例子对该改造进行详细说明。\n[0067] 设定现有的包管理服务中的应用安装接口函数为:\n[0068]\n[0069]\n[0070] 在本发明实施例中,对上述现有的包管理服务中的应用安装接口函数进行了如下来两方面改造:\n[0071] 改造1、直接将上述现有的包管理服务中的应用安装接口函数重命名为installPackageWithVerificationAndEncryptionOrigin(),即在保持函数中的内容没有发生任何变化的情况下,在原应用安装接口函数的名称后面增加了Origin字样,以表示该应用安装接口函数是原来的应用安装接口函数。\n[0072] 改造2、新增一个应用安装接口函数,该新增的应用安装接口函数的函数名字以及参数都和原应用安装接口函数完全相同,只是函数中的内容发生了变化,请参见如下描述:\n[0073]\n[0074] //checkPkgPreInstall主要用于检查一下是否有应用注册了应用安装监听器等;\n[0075] //如果没有应用注册应用安装监听器,则返回false;否则,回调应用安装监听器对应的接口函数onPreInstall(),以通知应用层对需要安装的应用程序进行病毒扫描。\n[0076] boolean holdInstall=QSSecurityProxy.checkPkgPreInstall\n[0077] (packageURI,observer,\n[0078] flags,installerPackageName,\n[0079] verificationParams,encryptionParams);\n[0080] //如果holdInstall为true,表示应挂起当前应用程序的安装,不执行应用程序的安装操作。后续是否执行应用程序的安装应等待应用层调用框架层的\nresumeOrAbortInstall()来决定。\n[0081] //如果holdInstall为false,表示说明发生了前述的情况,也就没有必要中断安装了,直接调用原安装接口。\n[0082]\n[0083] 另外,框架层中的resumeOrAbortInstall()的部分代码如下所示:\n[0084]\n[0085]\n[0086] 图2中,首先,安全管理应用程序可以调用QihooAppManager中的类函数setPreInstallListener()来在框架层中注册应用安装监听器;当需要安装应用程序时,操作系统调用包管理服务提供的installPackageWithVerificationAndEncryption()接口函数,该接口函数的开始位置处设置有安全服务提供的checkPkgPreInstall()接口函数,checkPkgPreInstall()接口函数在保存现场数据后,根据上述注册的应用安装监听器回调onPreInstall(Uri Uri),这样,框架层并没有执行实际的安装操作,而是先通过前述的应用安装监听器通知安全管理应用程序这一安装事件,从而安全管理应用程序可以根据onPreInstall(Uri Uri)的调用马上对需要安装的应用程序进行病毒扫描处理,然后,安全管理应用程序调用应用层的类函数resumeOrAbortInstall(),该类函数中的第二个参数的具体取值是安全管理应用程序根据病毒扫描结果来确定的,该类函数\nresumeOrAbortInstall()通过调用框架层的网络安全服务提供的resumeOrAbortInstall()来通知框架层是否执行应用程序的安装操作。在框架层的网络安全服务提供的resumeOrAbortInstall()判断出需要执行应用程序的安装操作的情况下,调用未经本发明改造的installPackageWithVerificationAndEncryptionOrigin()接口函数,并将上述保存下来的现场数据提供给installPackageWithVerificationAndEncryptionOrigin()接口函数,installPackageWithVerificationAndEncryptionOrigin()接口函数执行应用程序的安装操作,如执行图2中示出的sendMessage(INIT_COPY)等操作;在框架层的网络安全服务提供的resumeOrAbortInstall()判断出不需要执行应用程序的安装操作的情况下,框架层的网络安全服务提供的resumeOrAbortInstall()可以直接将上述保存下来的现场数据丢弃,以结束应用程序的安装操作。\n[0087] 图2中最右侧的虚线表示,现有的应用安装接口函数在被调用后会直接执行应用程序的安装操作,如执行图2中示出的sendMessage(INIT_COPY)等操作,本实施例完全改变了现有的应用程序的安装操作。\n[0088] 由上述描述可知,本发明的实施例对Android操作系统的Framework(框架)层中的应用安装接口函数进行了修改,在应用安装接口函数的现有安装流程中插入了hook(钩子),这样,在应用安装接口函数执行应用程序的安装操作之前,会先由病毒扫描应用对需要安装的应用程序进行病毒扫描,从而本发明实施例可以针对携带有病毒的应用程序不再执行安装操作,使携带有病毒的应用程序可以不再被安装在终端设备中,最终本发明实施例避免了携带病毒应用程序被安装在终端设备中而给终端设备带来的潜在危害。\n[0089] 实施例三、病毒防御装置。下面结合图3对该装置进行详细说明。\n[0090] 图2中示出的装置可以设置于计算机、智能移动电话或者平板电脑等智能电子设备中;且该装置主要包括:应用程序安装模块300、启动病毒扫描模块310、通知模块320、监听器注册模块330和应用程序清除模块340;其中,应用程序安装模块300与监听器注册模块\n330连接,启动病毒扫描模块310与应用程序安装模块300和通知模块320分别连接,且通知模块320还与应用程序清除模块340连接。\n[0091] 应用程序安装模块300主要适于在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层。\n[0092] 具体的,本实施例可以在应用层中设置应用安装监听接口函数,在框架层中提供一服务(如安全服务),并为该安全服务设置安装前包检测接口函数,该安装前包检测接口函数设置于应用程序安装模块300中;这样,应用程序安装模块300可以将需要安装的应用程序标识信息通过框架层的安全服务的安装前包检测接口函数传输给应用层的应用安装监听接口函数。\n[0093] 由于应用程序在安装时,Android操作系统会启动包管理服务,而包管理服务中的应用安装接口函数(该应用安装接口函数属于应用程序安装模块300)会被调用,因此,本实施例可以通过对现有的应用安装接口函数中的具体实现流程进行改造,以实现在执行应用程序的安装操作之前先对该应用程序进行病毒扫描,以避免终端设备安装携带有病毒的应用程序的目的。\n[0094] 本实施例可以在应用安装接口函数的开始位置处设置安装前包检测接口函数,这样,在应用安装接口函数被调用执行时,应用安装接口函数中的该安装前包检测接口函数中所包含的具体实现流程首先被执行,而应用安装接口函数中的应用程序的正常安装操作被中断。安装前包检测接口函数的一个主要作用是保存应用程序安装的现场数据(如保存操作系统传入至包管理服务的应用安装接口函数的各个参数信息),并将需要安装的应用程序的标识信息回传给应用层,以便于应用层对需要安装的应用程序进行病毒扫描处理。\n[0095] 本实施例可以通过回调接口的方式将需要安装的应用程序标识信息由框架层传输到应用层;具体的,应用层中的监听器注册模块330在框架层中注册应用安装监听器,从而应用层中的启动病毒扫描模块310可以通过该应用安装侦听器从框架层获得需要安装的应用程序的标识信息。\n[0096] 一个具体的例子,应用层的安全管理应用程序(如360安全卫士等)中的监听器注册模块330可以通过用于设置监听器的类函数在框架层注册应用安装监听器,该应用安装监听器对应的应用安装监听接口函数会被框架层的应用程序安装模块300中的安装前包检测接口函数所调用,从而需要安装的应用程序标识由框架层传输至应用层。\n[0097] 监听器注册模块330可以将应用安装监听接口函数的名称设置于框架层的应用安装监听器集合中,这样,应用程序安装模块300中的安装前包检测接口函数可以从应用安装监听器集合中获取到一个或者多个回调函数的名称(其中至少包含有应用安装监听接口函数的名称),安装前包检测接口函数通过获得的名称调用各回调函数,从而应用程序安装模块300将需要安装的应用程序标识信息传输给各回调函数。\n[0098] 上述应用程序标识信息是指可以唯一定位一应用程序的信息,该应用程序标识信息可以具体为应用程序的URI等。\n[0099] 启动病毒扫描模块310主要适于在应用层,根据应用程序标识信息启动病毒扫描应用程序,以使病毒扫描应用程序对需要安装的应用程序进行病毒扫描处理。\n[0100] 具体的,在应用层,启动病毒扫描模块310中的应用安装监听接口函数可以将应用程序标识信息提供给终端设备中的病毒扫描应用程序(该病毒扫描应用程序也可以称为安全管理应用程序,如现有的杀毒应用程序等),并触发病毒扫描应用程序对该应用程序标识信息对应的应用程序进行病毒扫描。\n[0101] 通知模块320主要适于获取病毒扫描处理的扫描结果,并根据扫描结果向框架层发出是否执行应用程序的安装操作的通知。\n[0102] 具体的,在病毒扫描应用程序(也即安全管理应用程序)对需要安装的应用程序病毒扫描完毕,产生并输出病毒扫描结果后,通知模块320可以利用应用层中的应用安装恢复类函数或者中止应用安装类函数向框架层发出相应的通知,以使框架层中的应用安装接口函数获知是否应执行该应用程序的安装操作。\n[0103] 一个具体的例子,通知模块320在病毒扫描应用程序执行了病毒扫描操作后,调用应用层中的应用安装恢复类函数或者中止应用安装类函数,并根据病毒扫描结果设置应用层中的应用安装恢复类函数或者中止应用安装类函数的输入参数;应用层中的应用安装恢复类函数或者中止应用安装类函数再调用框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数,以通知框架层是否执行应用程序的安装操作。\n[0104] 在本实施例中,通知模块320在病毒扫描应用程序成功执行了病毒扫描操作后,自动根据病毒扫描结果直接向框架层发出是否执行应用程序的安装操作的通知;一个具体的例子,在病毒扫描应用程序未发现需要安装的应用程序携带有病毒的情况下,通知模块320直接调用应用层中的应用安装恢复类函数或者中止应用安装类函数,并通过应用层中的应用安装恢复类函数或者中止应用安装类函数调用框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数,来通知框架层执行该应用程序安装操作;另一个具体的例子,在病毒扫描应用程序发现需要安装的应用程序携带有病毒的情况下,病毒扫描应用程序直接调用应用层中的应用安装恢复类函数或者中止应用安装类函数,并通过应用层中的应用安装恢复类函数或者中止应用安装类函数调用框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数,来通知框架层不再执行该应用程序安装操作。\n[0105] 在本实施例中,通知模块320也可以在病毒扫描应用程序成功执行了病毒扫描操作后,根据病毒扫描结果以及用户的指示信息向框架层发出是否执行应用程序的安装操作的通知;一个具体的例子,在病毒扫描应用程序发现应用程序携带有病毒的情况下,通知模块320提示用户“扫描发现该应用程序携带有病毒,是否仍要安装该应用程序”,通知模块\n320根据用户输入的指示信息调用应用层中的应用安装恢复类函数或者中止应用安装类函数,并通过应用层中的应用安装恢复类函数或者中止应用安装类函数调用框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数,来通知框架层是否执行该应用程序安装操作。\n[0106] 应用程序安装模块300还主要适于根据通知模块320的通知执行应用程序的安装操作或者拒绝执行应用程序的安装操作。\n[0107] 具体的,框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数(属于应用程序安装模块300)在根据应用层中的应用安装恢复类函数或者中止应用安装类函数的输入参数确定出需要执行该应用程序的安装操作的情况下,应先获取前述保存的现场数据,将该现场数据提供给应用安装接口函数,并触发应用安装接口函数执行应用程序的安装操作,从而使应用程序成功安装于终端设备中;框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数在根据应用层中的应用安装恢复类函数或者中止应用安装类函数的输入参数确定出不需要执行该应用程序的安装操作的情况下,可直接丢弃前述保存的现场数据,并不再触发应用安装接口函数执行应用程序的安装操作,从而应用程序不会被安装在终端设备中。\n[0108] 一个具体的例子,应用程序安装模块300中只存在一个应用安装接口函数,该应用安装接口函数的输入参数中包含有恢复安装操作的标志位,在该标志位表示恢复安装操作的情况下,应用安装接口函数在被调用时,不会再执行其中的安装前包检测接口函数,而在该标志位表示非恢复安装操作的情况下,应用安装接口函数在被调用时,应执行其中的安装前包检测接口函数。这样,应用程序安装模块300中的应用安装恢复类函数或者中止应用安装类函数在决定需要执行该应用程序的安装操作的情况下,调用该应用安装接口函数,将上述保存的现场数据提供给该应用安装接口函数,并将恢复安装操作的标志位设置为表征恢复安装操作的取值,从而应用安装接口函数不再调用安装前包检测接口函数,而直接执行应用程序的安装操作,应用程序被安装在终端设备中;框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数在决定不需要执行该应用程序的安装操作的情况下,直接丢弃前述保存的现场数据即可。\n[0109] 另一个具体的例子,应用程序安装模块300中同时存在有两个应用安装接口函数,这两个应用安装接口函数在函数名称上可以有所区别(如应用安装接口函数A和应用安装接口函数B),其中一个是经本发明改造的应用安装接口函数(即包含有安装前包检测接口函数),而另一个是未经本发明改造的应用安装接口函数(即现有的应用安装接口函数),该未经本发明改造的应用安装接口函数并不能直接被外部调用(如不能被包管理服务直接调用),而只能被框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数(属于应用程序安装模块300)所调用。这样,框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数在决定需要执行该应用程序的安装操作的情况下,调用未经本发明改造的应用安装接口函数,并将上述保存的现场数据提供给未经本发明改造的应用安装接口函数,从而应用程序的安装操作被执行,该应用程序被安装在终端设备中;框架层的服务提供的应用安装恢复类函数或者中止应用安装类函数在决定不需要执行该应用程序的安装操作的情况下,直接丢弃前述保存的现场数据即可。\n[0110] 本实施例在病毒扫描结果为应用程序携带有病毒的情况下,设置于应用层中的应用程序清除模块340可以直接删除该应用程序;也可以先由应用程序清除模块340提示用户是否需要删除该应用程序,如果用户指示删除该应用程序,则应用程序清除模块340再删除该应用程序,否则,应用程序清除模块340不会执行删除该应用程序的操作。\n[0111] A1、一种病毒防御方法,其包括:\n[0112] 在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层;\n[0113] 在应用层,根据所述应用程序标识信息启动病毒扫描应用程序,以使病毒扫描应用程序对所述应用程序进行病毒扫描处理;\n[0114] 获取所述病毒扫描处理的扫描结果,并根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知;\n[0115] 在框架层,根据所述通知执行所述应用程序的安装操作或者拒绝执行所述应用程序的安装操作。\n[0116] A2、如A1所述的方法,其中,所述应用层中设置有应用安装监听接口函数,所述框架层中设置有安全服务的安装前包检测接口函数;\n[0117] 且所述在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层包括:\n[0118] 在Android操作系统的包管理服务中的应用安装接口函数被调用的情况下,所述应用安装接口函数通过所述安装前包检测接口函数将需要安装的应用程序标识信息传输至应用安装监听接口函数,所述安装前包检测接口函数保存应用程序安装的现场数据,且所述应用安装接口函数停止安装操作。\n[0119] A3、如A2所述的方法,其中,所述安装前包检测接口函数设置于所述应用安装接口函数的开始位置处,且所述应用安装接口函数通过所述安装前包检测接口函数将需要安装的应用程序标识信息传输至应用安装监听接口函数包括:\n[0120] 所述应用安装接口函数被调用时,所述应用安装接口函数调用所述安装前包检测接口函数;\n[0121] 所述安装前包检测接口函数从应用安装监听器集合中获取所有回调函数的名称,且所述应用安装监听器集合中包含有应用安装监听接口函数的名称;\n[0122] 所述安装前包检测接口函数根据所述回调函数的名称向所有回调函数传输需要安装的应用程序标识信息。\n[0123] A4、如A3所述的方法,其中,所述方法还包括:\n[0124] 在框架层的应用安装监听器集合中设置应用安装监听接口函数的名称。\n[0125] A5、如A1所述的方法,其中,所述应用程序标识信息包括:应用程序的URI。\n[0126] A6、如A1所述的方法,其中,所述根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知包括:\n[0127] 根据所述扫描结果利用应用层中的应用安装恢复类函数或者中止应用安装类函数调用框架层的服务提供的应用安装恢复接口函数或者中止应用安装接口函数,以向框架层发出是否执行所述应用程序的安装操作的通知。\n[0128] A7、如A1至A6中任一所述的方法,其中,所述根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知包括:\n[0129] 根据所述病毒扫描结果直接向框架层发出是否执行所述应用程序的安装操作的通知;或者\n[0130] 在病毒扫描结果为应用程序携带有病毒的情况下,将所述病毒扫描结果呈现给用户,并根据用户输入的指示信息向框架层发出是否执行所述应用程序的安装操作的通知。\n[0131] A8、如A1至A6中任一所述的方法,其中,所述方法还包括:\n[0132] 在所述病毒扫描结果为所述应用程序携带有病毒的情况下,直接删除所述应用程序;或者\n[0133] 在所述病毒扫描结果为所述应用程序携带有病毒的情况下,向用户呈现是否删除应用程序的信息,并根据用户输入的指示信息删除/不删除所述应用程序。\n[0134] B9、一种病毒防御装置,其包括:\n[0135] 应用程序安装模块,适于在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层;\n[0136] 启动病毒扫描模块,适于在应用层,根据所述应用程序标识信息启动病毒扫描应用程序,以使病毒扫描应用程序对所述应用程序进行病毒扫描处理;\n[0137] 通知模块,适于获取所述病毒扫描处理的扫描结果,并根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知;\n[0138] 所述应用程序安装模块还适于,在框架层,根据所述通知执行所述应用程序的安装操作或者拒绝执行所述应用程序的安装操作。\n[0139] B10、如B9所述的装置,其中,所述应用层中设置有应用安装监听接口函数,所述应用程序安装模块中设置有包管理服务中的应用安装接口函数以及安全服务的安装前包检测接口函数;\n[0140] 且所述在Android操作系统需要安装应用程序时,将需要安装的应用程序标识信息由框架层传输至应用层包括:\n[0141] 在Android操作系统的包管理服务中的应用安装接口函数被调用的情况下,所述应用安装接口函数通过所述安装前包检测接口函数将需要安装的应用程序标识信息传输至应用安装监听接口函数,所述安装前包检测接口函数保存应用程序安装的现场数据,且所述应用安装接口函数停止安装操作。\n[0142] B11、如B10所述的装置,其中,所述安装前包检测接口函数设置于所述应用安装接口函数的开始位置处,且所述应用安装接口函数通过所述安装前包检测接口函数将需要安装的应用程序标识信息传输至应用安装监听接口函数包括:\n[0143] 所述应用安装接口函数被调用时,所述应用安装接口函数调用所述安装前包检测接口函数;\n[0144] 所述安装前包检测接口函数从应用安装监听器集合中获取所有回调函数的名称,且所述应用安装监听器集合中包含有应用安装监听接口函数的名称;\n[0145] 所述安装前包检测接口函数根据所述回调函数的名称向所有回调函数传输需要安装的应用程序标识信息。\n[0146] B12、如B11所述的装置,其中,所述装置还包括:\n[0147] 监听器注册模块,适于在框架层的应用安装监听器集合中设置应用安装监听接口函数的名称。\n[0148] B13、如B9所述的装置,其中,所述应用程序标识信息包括:应用程序的URI。\n[0149] B14、如B9所述的装置,其中,所述根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知包括:\n[0150] 通知模块根据所述扫描结果利用应用层中的应用安装恢复类函数或者中止应用安装类函数调用框架层的服务提供的应用安装恢复接口函数或者中止应用安装接口函数,以向框架层发出是否执行所述应用程序的安装操作的通知。\n[0151] B15、如B9至B14中任一所述的装置,其中,所述根据所述扫描结果向框架层发出是否执行所述应用程序的安装操作的通知包括:\n[0152] 通知模块根据所述病毒扫描结果直接向框架层发出是否执行所述应用程序的安装操作的通知;或者\n[0153] 通知模块在病毒扫描结果为应用程序携带有病毒的情况下,将所述病毒扫描结果呈现给用户,并根据用户输入的指示信息向框架层发出是否执行所述应用程序的安装操作的通知。\n[0154] B16、如B9至B14中任一所述的装置,其中,所述装置还包括:\n[0155] 应用程序清除模块,适于在所述病毒扫描结果为所述应用程序携带有病毒的情况下,直接删除所述应用程序;或者\n[0156] 适于在所述病毒扫描结果为所述应用程序携带有病毒的情况下,向用户呈现是否删除应用程序的信息,并根据用户输入的指示信息删除/不删除所述应用程序。\n[0157] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。\n各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。\n[0158] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。\n[0159] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。\n[0160] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。\n[0161] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。\n[0162] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的电子设备中的病毒防御装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。\n[0163] 应该注意的是,上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
法律信息
- 2022-08-05
专利权的转移
登记生效日: 2022.07.25
专利权人由北京奇虎科技有限公司变更为北京奇虎科技有限公司
地址由100088 北京市西城区新街口外大街28号D座112室(德胜园区)变更为100015 北京市朝阳区酒仙桥路6号院2号楼1至19层104号内8层801
专利权人由奇智软件(北京)有限公司 变更为空
- 2017-05-24
- 2014-03-19
实质审查的生效
IPC(主分类): G06F 21/56
专利申请号: 201310575193.9
申请日: 2013.11.15
- 2014-02-12
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-11-28
|
2012-07-19
| | |
2
| |
2013-05-08
|
2013-01-31
| | |
3
| | 暂无 |
2006-01-05
| | |
4
| |
2011-11-23
|
2011-06-27
| | |
5
| |
2012-09-12
|
2012-03-21
| | |
6
| |
2012-12-05
|
2012-04-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |