一种移动应用的软件加固方法技术

技术编号:9618180 阅读:108 留言:0更新日期:2014-01-30 05:56
本发明专利技术揭示了一种移动应用的软件加固方法,包括步骤Ⅰ、按预设的安全要求定制Dalvik的微型虚拟机,Ⅱ将微型虚拟机整合到应用程序中,使微型虚拟机成为应用程序可运行组件的一部分且具有最高优先运行权,Ⅲ、在应用程序运行时先运行微型虚拟机,对应用程序整体进行安全性检查或验证,并在安全通过后再运行应用程序的功能模块。应用本发明专利技术软件加固方法,通过在应用程序中整合定制的微型虚拟机,并在应用程序中优先对应用程序本身及运行环境进行安全检测,能有效防止应用程序被非法破解或逆向,提高了Android系统下应用程序的安全性,保护了用户的个人敏感数据,也保障了商业软件的机密性。

Software reinforcing method for mobile application

The invention discloses a mobile application software reinforcement method, comprising the steps I, according to the preset safety requirements for custom Dalvik micro virtual machine, virtual machine will be integrated into the micro II application, the micro virtual machine application can become a part of the operation assembly and have the highest priority operation right, III, first run miniature virtual machine in the application runs, safety inspection or verification of the whole application, the function module and then run the application in safety by post. The present invention application software reinforcement method, through micro virtual machine integration customization in the application, and in the application prior to the application itself and the operating environment for safety testing, can effectively prevent the application is illegal to crack or reverse, application security enhanced Android system, the protection of sensitive personal data users also, to protect the confidentiality of commercial software.

【技术实现步骤摘要】
—种移动应用的软件加固方法
本专利技术涉及一种Android系统上应用程序的保护技术,通过定制虚拟机技术来保障应用程序运行环境的安全,进而实现应用程序本身的安全,该方法可应用在Android系统的应用程序开发流程中。
技术介绍
Dalvik虚拟机是Android中应用程序运行的基础。由Android系统专用,并且是Android系统的核心组成部分之一,其指令集基于寄存器架构,支持dex格式的Java应用程序的运行。其中dex文件是专为Dalvik虚拟机设计的一种压缩的文件格式,针对嵌入式系统进行了优化,共用了很多类名称、常量字符串,使它的体积比较小,运行效率也比较高。基于寄存器实现,使其在编译程序时可以提前优化代码而不是延迟到执行时。Dalvik虚拟机的核心是实现库libdvm.so,主要由C语言完成。其运行依赖于Linux内核的线程机制和内存管理机制等部分功能,能高效使用内存,并以高性能在低速CPU上运行,因此适合内存和处理器速度有限的系统。Dalvik虚拟机经过优化后,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik虚拟机作为一个独立的Linux进程执行,可以防止在虚拟机崩溃的时候所有程序都被关闭。同时,每一个Andro i d应用在底层都会对应一个独立的Dalvik虚拟机实例,使其代码在虚拟机的解释下得以执行。然而归根结底,Dalvik也是一个定制的Java虚拟机,只不过实现了自己的一套指令集并且将虚拟机对嵌入式设备进行了一系列的优化,可以满足高效运行多种虚拟机实例。其中有一个特殊的虚拟机进程Zygote,作为虚拟机实例的孵化器,它在系统启动的时候就会产生,它会完成虚拟机的初始化、库的加载和预制类库和初始化的操作。如果系统需要一个新的虚拟机实例,它会迅速复制自身,以最快的数据提供给系统。对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域。作为操作系统与应用程序之间的中间件,其安全问题与应用程序及操作系统的安全关系十分紧密。随着移动操作系统的不断发展,Android占领了大部分的移动市场。但是由于Android系统版本分支较多造成碎片化严重,而其本身在不同版本中又存在很多不同的漏洞,其实整个Android系统的版本混乱,造成其系统之上运行的Dalvik虚拟机也十分不安全,运行在虚拟机中的应用程序安全性更无法得到保证。
技术实现思路
本专利技术的目的旨在提出,对运行在移动操作系统中的应用程序进行保护。本专利技术的上述目的,其得以实现的技术解决方案为:,针对Android系统中的应用程序做加固处理,其特征在于:所述软件加固方法包括步骤1、按预设的安全要求定制微型虚拟机,II将微型虚拟机整合到应用程序中,使微型虚拟机成为应用程序可运行组件的一部分且具有最高优先运行权,II1、在应用程序运行时先运行微型虚拟机,对应用程序整体进行安全性检查或验证,并在安全性验证通过后再运行应用程序的功能模块,所述预设的安全要求包括应用程序的签名验证,应用程序中无效指令、非法指令的去除以及加密信息的解密。进一步地,所述微型虚拟机的整合方式为采用NDK方式,在应用程序安装包中使用Android原生编程套件并用C或C++语言进行一体化定制,使微型虚拟机成为应用程序可运行组件的一部分。进一步地,所述微型虚拟机的整合方式为在应用程序首次运行前通过RPC技术从远端取回至本地,并动态加载成为应用程序可运行组件的一部分。进一步地,以微型虚拟机已整合在应用程序中为基础,所述微型虚拟机的运行对应于移动终端开机启动实时监听应用程序的执行中。进一步地,所述微型虚拟机执行应用程序的签名验证功能,在应用程序安装好后利用存放在远端服务器上的公钥进行验证,在验证无法通过的情况下终止程序运行或提示卸载。进一步地,所述微型虚拟机执行应用程序中无效指令、非法指令的清除功能,在应用程序被插入非法获取系统或用户信息的代码或指令情况下,微型虚拟机运行并删除该些代码或指令。进一步地,所述微型虚拟机执行加密信息的解密功能,在一个处理移动支付的应用中交易过程及交易信息的加密信息,由对应的微型虚拟机进行解密并与移动支付相关的服务器交互。应用本专利技术软件加固的技术方案:通过在应用程序中整合定制的微型虚拟机,并在应用程序中优先对应用程序本身及运行环境进行安全检测,能有效防止应用程序被非法破解或逆向,提高了 Android系统下应用程序的安全性,保护了用户的个人敏感数据,也保障了商业软件的机密性。【附图说明】图1为本专利技术移动应用的软件加固方法流程图。【具体实施方式】本专利技术为应对日益严重的移动操作系统的客户端安全,创新地提出了一种针对Android系统中应用程序的保护技术。该技术方案能突破目前常见的、传统的基于其它应用程序的保护方案,借鉴Android系统本身Dalvik虚拟机实现,针对应用程序定制微型虚拟机,是应用程序整个或者一部分运行在定制的虚拟机中,从而能有效地防止应用程序被非法破解或者逆向,提高了 Android系统上应用程序的安全性。从软件加固方法的概括来看,如图1所示,该软件加固方法包括步骤1、按预设的安全要求定制微型虚拟机,II将微型虚拟机整合到应用程序中,使微型虚拟机成为应用程序可运行组件的一部分且具有最高优先运行权,II1、在应用程序运行时先运行微型虚拟机,对应用程序整体进行安全性检查或验证,并在安全通过后再运行应用程序的功能模块,所述预设的安全要求包括应用程序的签名验证,应用程序中无效指令、非法指令的去除以及加密信息的解密,可以择一选取,也可以兼具所有。上述方案进一步细化来看,其中微型虚拟机的整合方式可以采用NDK方式,即在应用程序安装包中使用Android原生编程套件并用C或C++语言进行一体化定制,使微型虚拟机成为应用程序可运行组件的一部分。也可以是在应用程序首次运行前通过RPC技术从远端取回至本地,并动态加载成为应用程序可运行组件的一部分。对于定制微型虚拟机,需要注意以下几方面的问题。1,定制的微型虚拟机需要整合在应用程序里面,使运行定制虚拟机的应用程序实质上成为一个新的应用程序。应用程序由系统安装之后,定制虚拟机成为程序可运行组件的一部分,而且每次微型虚拟机都要在真正的程序运行之前运行,使程序始终能在自己附带的安全的环境中运行。对此,考虑到定制虚拟机需要与移动应用进行整合,因此可以将定制的微型虚拟机作为应用程序的一个功能组件,而且这个微型虚拟机需要先于程序运行之前运行,故将其放在开机启动实时监听应用程序的执行是比较好的选择,当然这是在微型虚拟机已经通过某种途径整合在应用程序中的情况下实现的。如果是第一次运行还需先去从远端或者本地获取定制的虚拟机。2,微型虚拟机在执行应用程序时,要对应用程序做安全性检查。比如说再次验证应用程序的签名是否正确,进而决定是否在自己的虚拟机环境中运行该应用程序。对此,每一个应用程序拥有各自的签名,签名在应用开发者手中自己进行掌控,如果签名不泄露,那么应用程序的伪造就很容易鉴别。定制的虚拟机增加安全性检查,是在系统安装应用后对应用程序进行的又一次验证,可以把应用对应的公钥存放在远端服务器,与安装好的应用进行验证,若验证不通过则终止程序的运行或提示卸载,更好地保证了应用程序的合法性。3,可本文档来自技高网
...

【技术保护点】
一种移动应用的软件加固方法,针对Android系统中的应用程序做加固处理,其特征在于:所述软件加固方法包括步骤Ⅰ、按预设的安全要求定制微型虚拟机,Ⅱ将微型虚拟机整合到应用程序中,使微型虚拟机成为应用程序可运行组件的一部分且具有最高优先运行权,Ⅲ、在应用程序运行时先运行微型虚拟机,对应用程序整体进行安全性检查或验证,并在安全通过后再运行应用程序的功能模块,所述预设的安全要求包括应用程序的签名验证,应用程序中无效指令、非法指令的去除以及加密信息的解密。

【技术特征摘要】
1.一种移动应用的软件加固方法,针对Android系统中的应用程序做加固处理,其特征在于:所述软件加固方法包括步骤1、按预设的安全要求定制微型虚拟机,II将微型虚拟机整合到应用程序中,使微型虚拟机成为应用程序可运行组件的一部分且具有最高优先运行权,II1、在应用程序运行时先运行微型虚拟机,对应用程序整体进行安全性检查或验证,并在安全通过后再运行应用程序的功能模块,所述预设的安全要求包括应用程序的签名验证,应用程序中无效指令、非法指令的去除以及加密信息的解密。2.根据权利要求1所述移动应用的软件加固方法,其特征在于:所述微型虚拟机的整合方式为采用NDK方式,在应用程序安装包中使用Android原生编程套件并用C或C++语言进行一体化定制,使微型虚拟机成为应用程序可运行组件的一部分。3.根据权利要求1所述移动应用的软件加固方法,其特征在于:所述微型虚拟机的整合方式为在应用程序首次运行前通过RPC技术从远端取回至本地,...

【专利技术属性】
技术研发人员:汪德嘉宋超刘家郡
申请(专利权)人:苏州通付盾信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1