本发明专利技术涉及一种应用程序加壳配置方法,其包括以下步骤:解析所述应用程序原安装包,获得其内部文件;构造集合所述原安装包与所述内部文件的加壳安装包,使加壳安装包与原安装包具有不同的包名,所述被集合的内部文件中配置有加载模块,该加载模块,用于将被集合的原安装包加载到沙箱运行环境中以运行所述应用程序;安装该加壳安装包。此外,本发明专利技术还涉及与该方法相应的一种应用程序加壳配置装置。本发明专利技术使得目标应用程序能够运行于沙箱运行环境中,并且能确保系统的安全。
【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种应用程序加壳配置方法,其包括以下步骤:解析所述应用程序原安装包,获得其内部文件;构造集合所述原安装包与所述内部文件的加壳安装包,使加壳安装包与原安装包具有不同的包名,所述被集合的内部文件中配置有加载模块,该加载模块,用于将被集合的原安装包加载到沙箱运行环境中以运行所述应用程序;安装该加壳安装包。此外,本专利技术还涉及与该方法相应的一种应用程序加壳配置装置。本专利技术使得目标应用程序能够运行于沙箱运行环境中,并且能确保系统的安全。【专利说明】应用程序加壳配置方法与装置
本专利技术涉及计算机软件安全
,尤其涉及一种应用程序加壳配置方法及相 应的装置。
技术介绍
沙箱是一种按照安全策略限制程序行为的执行环境,目前已经广泛实用于各种操 作系统中。以Android为例,一些应用程序,出于实现应用程序固有功能需要之外的目的, 特别是商业目的,随意申请系统权限,获取用户隐私数据、执行网络访问、保持设备活动、发 送短信行为等。轻则可能导致用户隐私数据泄露,或者占用系统资源,重则可能通过恶意扣 费、植入广告、消耗资费、欺诈诱骗等,使用户遭受损失。因此,通过沙箱技术提供的执行环 境,由沙箱对系统的资源、权限进行管理,让应用程序于该沙箱中运行,应用程序的访问先 经沙箱按安全策略进行审查,由此,形成一种相对于系统本身的隔离运行效果,可以有效地 保护系统的安全。对于沙箱中所用到的安全策略,适应各种不同的操作系统有不同的细节 考虑,这些有关技术实现的基本知识,均已为本领域技术人员所掌握,恕不赘述。 目前有多种实例来实现沙箱技术。这些实例中,一方面,沙箱技术为了兼容市面的 多种应用,一般仅仅通过限定沙箱的安全策略,控制该应用的可执行资源而实现。然而,在 安全领域,攻防双方的技术水平此消彼长,传统的仅仅通过限制安全策略的沙箱,有时难以 确保能够达到所期望的目的,必须借助于更富技术含量的新方案。另一方面,沙箱技术往往 涉及系统底层操作,而在诸如以Android为代表的Unix系的操作系统中,本身有着严格的 权限管理,这样,便导致在未获得Root授权的前提下,难以应用沙箱技术去构造沙箱。可以 独辟蹊径,去实现免Root环境下的沙箱环境,然而,在这种情况下,往往会引起多方面的一 些技术障碍,这些障碍依沙箱的具体实现方式而定。 目前现有技术中,对于这种免Root沙箱,尽管存在理论可能,未见成熟案例。但 是,从以上的分析可以看出,要基于免Root环境实现一种更为安全的沙箱技术,需要结合 其具体技术原理,来考虑其自身的具体构造以及在必要时考虑对相关应用程序的重构,使 得重构后的应用程序可以无缝运行于已经基于系统而保持相对独立的沙箱之中,通过该应 用程序在沙箱中的运行,实现应有的安全控制效果。
技术实现思路
本专利技术的第一目的在于提供一种应用程序加壳配置方法,以便为免Root沙箱环 境配置便于加载运行的应用程序。 本专利技术的第二目在于提供一种适于构造第一目的所述的方法的应用程序加壳配 直装直。 为实现本专利技术的目的,本专利技术采取如下技术方案: 本专利技术的一种应用程序加壳配置方法,其包括以下步骤: 解析所述应用程序原安装包,获得其内部文件; 构造集合所述原安装包与所述内部文件的加壳安装包,使加壳安装包与原安装包 具有不同的包名,所述被集合的内部文件中配置有加载模块,该加载模块,用于将被集合的 原安装包加载到沙箱运行环境中以运行所述应用程序; 安装该加壳安装包。 较佳的,加壳安装包的包名,由所述原安装包的包名附加前缀构成。 具体的,所述内部文件之一为被集合的原安装包的配置文件的副本,该副本中涉 及组件和动作名称处均被附加所述的前缀,所述配置文件的副本特指Androidmanifest. xml文件。 进一步,所述加载模块设置于内部文件之一的代码文件中,该加载模块被配置为 采用反射调用机制加载所述被集合的原安装包以运行所述应用程序。所述代码文件特指 classes, dex 文件。 根据本专利技术的一个实例所揭示,所述内部文件包括被集合的自原安装包获得的资 源文件和/或动态库文件及其相应的目录结构。 具体的,所述资源文件特指Res目录及其下所包含的文件,所述动态库文件特指 Lib目录及其下所包含的文件。 较佳的,所述资源文件包括图标文件,且该图标文件基于被集合的自原安装包获 得的相应图标文件进行局部修改所得。 具体的,所述被集合的原安装包被置于加壳安装包的Assets目录中。 进一步,所述加载模块被配置为引导沙箱运行环境对所述应用程序的运行进程实 施安全监控,以实现该应用程序在沙箱运行环境中的正常运行。 本专利技术提供的一种应用程序加壳配置装置,其特征在于,包括: 获取单元,用于解析所述应用程序原安装包,获得其内部文件; 构造单元,用于构造集合所述原安装包与所述内部文件的加壳安装包,使加壳安 装包与原安装包具有不同的包名,所述被集合的内部文件中配置有加载模块,该加载模块, 用于将被集合的原安装包加载到沙箱运行环境中以运行所述应用程序; 安装单元,用于安装该加壳安装包。 相较于现有技术,本专利技术至少具有如下优点: 1、借助目标应用程序安装包自身的内部文件为该安装包加壳,生成加壳安装 包,使加壳安装包具有与原安装包具有不同的包名(PackageName),原安装包的对应组 件和动作便被加壳安装包进行注册,由此,在宿主应用程序安装运行后,再借助反射调 用机制去加载安装包的四大组件时,借助相应函数使宿主应用程序的包名与目标应用 程序所调度的包名保持一致,在Android系统中,既能使活动组件和服务组件建立与 ActivityManagerService的正常通信,又能使活动组件、服务组件以及广播组件等,顺利被 PackageManagerService识别,降低现有技术中有关加壳应用程序运行异常的错误率。 2、通过在加壳的宿主应用程序中配置用于反射调用原安装包的加载模块,并且由 加载模块建立起原安装包的目标应用程序与沙箱运行环境之间的通信,使得目标应用程序 的活动过程可以进一步被沙箱运行环境进行监视,从而对其适用安全策略,以及对其进行 资源引用重定向等,确保目标应用程序能被宿主应用程序正常加载并保持正常运行。 3、由于宿主应用程序利用原安装包的Androidmanifest. xml为蓝本,修改 包名后,完成了正常的安装注册程序,不必为被反射调用的目标应用程序的各个组件 (Activity, Service, Receiver)单独构造主函数入口(ActivityThread. main)和提供 LoadedAPK对象,也不必考虑因包名而带来的PackageManagerService校验的程序实现复 杂度问题,从而大大提高程序运行效率。 本专利技术附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变 得明显,或通过本专利技术的实践了解到。 【专利附图】【附图说明】 本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中 : 图1是本专利技术的应用程序加壳配置本文档来自技高网...
【技术保护点】
一种应用程序加壳配置方法,其特征在于,包括以下步骤:解析所述应用程序原安装包,获得其内部文件;构造集合所述原安装包与所述内部文件的加壳安装包,使加壳安装包与原安装包具有不同的包名,所述被集合的内部文件中配置有加载模块,该加载模块,用于将被集合的原安装包加载到沙箱运行环境中以运行所述应用程序;安装该加壳安装包。
【技术特征摘要】
【专利技术属性】
技术研发人员:杨威,
申请(专利权)人:北京奇虎科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。