[发明专利]应用程序自我保护、主动防御方法与装置有效
申请号: | 201410773081.9 | 申请日: | 2014-12-12 |
公开(公告)号: | CN104376257B | 公开(公告)日: | 2017-10-20 |
发明(设计)人: | 杨威;曹阳;窦文科;符传坚 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F21/54 | 分类号: | G06F21/54 |
代理公司: | 北京市立方律师事务所11330 | 代理人: | 王增鑫 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 自我 保护 主动 防御 方法 装置 | ||
技术领域
本发明涉及计算机程序活动控制技术,一方面涉及一种应用程序主动防御方法与装置;另一方面,则涉及一种应用程序自我保护方法和装置。
背景技术
计算机操作系统中的应用程序,使用一段时间后出于各种原因会可能被卸载,作为提供应用程序的开发者,需要了解用户卸载该应用程序的原因,或者吸收用户的相关建议,所以会调查用户卸载原因,以及接收用户的相关建议等。实现了这种追踪功能的应用程序比较普遍,几乎所有操作系统上的应用程序理论上都能实现这种功能,在用户卸载应用程序后,将用户导向一个调查网页,请求用户填写调查问卷,最终获得需要的信息。
现有技术中,以Android为例,第三方应用程序安装后,会在/data/data中建立其数据文件,应用程序监控自身被卸载的方法通常是创建一个子进程用于监控其位于第三方应用数据目录/data/data内的文件清除事件,当系统卸载该应用程序并且把/data/data里面的文件清除时,便立刻访问一个网页显示卸载调查。
上述现有方法存在几个不足:一、Android 4.4版本以上由于系统运行机制不同于之前的版本,这种方法将不再适用;二、只能监听到卸载之后的事件,不能监听卸载前的行为;三、如果应用要监听卸载时,诸如一些安全软件想要还原用户系统配置,清理资源等操作,也无法实现。
对于应用程序的卸载的管理,可以从两个方面来分析,一方面是安全软件需要对其他应用程序实施的卸载监控和保护,另一方面则是某个应用程序自身需要建立对自身运行状态进行保护的安全防护机制。本发明将基于此处的分析,来对应用程序的保护加以考虑。
发明内容
本发明的首要目的在于克服上述的至少一个问题,而提供一种应用程序主动防御方法和装置。
本发明的另一目的在于克服上述的至少一个问题,而提供一种应用程序自我保护方法和装置。
为实现本发明的目的,本发明采取如下技术方案:
本发明提供的一种应用程序主动防御方法,包括以下步骤:
由注册到系统底层的卸载服务进程截获卸载该应用程序的行为;
由卸载服务进程将该行为通知与其通信的客户端服务进程;
由客户端服务进程还原由该应用程序处理的至少部分数据后,通知该卸载服务进程放行所述卸载应用程序的行为。
具体的,所述卸载服务进程基于获取Root权限为前提而被添加到系统底层。通过调用SystemService.addService()函数而将所述卸载服务进程添加到系统底层。
具体的,所述卸载服务进程通过钩子函数挂钩包管理服务进程的与卸载应用程序相关的函数的运行入口点而截获所述卸载应用程序的行为,并通过向该相关函数的调用者返回自定义数据而恢复所述包管理服务进程的运行。较佳的,该钩子函数具体通过监控包管理服务进程调用deletePackage()函数而截获所述的行为。
根据本发明的一个实施例所揭示,当且仅当所述客户端服务进程从其接收到的通知中判断出待卸载的应用程序为该客户端服务进程所属的应用程序时,才执行所述还原数据并通知卸载服务进程放行卸载的步骤,否则通知所述卸载服务进程直接放行卸载所述应用程序。
进一步,通过比较所述通知中所包含的包名与所述客户端服务进程所属应用程序的包名是否相同,而确定待卸载应用程序是否为该客户端服务进程所属的应用程序。
进一步,所述客户端服务进程收到卸载服务进程的通知后,弹出询问窗口,当且仅当接收到通过该窗口输入的表征允许卸载所述应用程序的指令时,才执行所述还原数据并通知卸载服务进程放行的步骤;否则通知所述卸载服务进程阻止卸载所述应用程序。
较佳的,所述卸载服务进程与所述客户端服务进程之间基于Binder机制进行通信。
进一步,所述还原由该应用程序处理的至少部分数据的过程,包括执行如下操作中的一种或任意多种:
清除由该应用程序增添的数据;
恢复由该应用程序修改的数据;
恢复由该应用程序删除的数据;
通过停止由该应用程序注册的服务进程而恢复系统的服务进程注册数据。
具体的,所述由该应用程序修改的数据包括其他应用程序在活动管理服务进程注册的数据。
根据本发明的一个实施例所揭示,所述客户端服务进程独立于所述应用程序而运行。
进一步,所述客户端服务进程接收到卸载服务进程的通知后,调用浏览器访问预设链接的网页。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410773081.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:安卓应用程序的安全风险检测方法及装置
- 下一篇:应用程序运行控制方法与装置