本发明专利技术提供了一种加解密功能的实现方法、装置及服务器,其中,该方法包括:对APK文件进行反编译,得到smali文件;将smali文件中用于执行I/O操作的代码替换为自定义的代码,其中,自定义的代码用于执行I/O操作以及对I/O的数据进行加解密操作;对替换过的smali文件进行编译并签名,得到新的APK文件。通过本发明专利技术,解决了对于没有源代码的应用无法再新增加解密功能的问题,减少了应用的维护成本。
【技术实现步骤摘要】
本专利技术涉及通信领域,具体而言,涉及一种加解密功能的实现方法、装置及服务器。
技术介绍
目前企业的IT建设向移动终端发展,企业移动应用在企业的日常工作中占据越来越重要的位置,其中移动办公等需求越来越普遍。企业移动应用不同于普通的手机应用程序(App),首先企业应用的多样化和个性化需求较强,比如对于核心系统的访问控制等,另外企业用户更加的趋向于全价值链的解决方案。由于企业移动应用发展之初没有统一标准的规划,很多的企业存在大量孤立遗留的移动应用,怎样灵活方便的为移动应用增加新的能力以适应企业多变的需求变的更加困难。企业很多的移动应用相关的开发人员已经很难找到,代码维护也很少。如果重新修改源码来增加某些能力,如为原来的应用增加读写加解密文件的功能等,不仅对不熟悉代码的人来说比较困难,而且会给企业带来更大的成本。目前很多的移动应用加解密是直接在应用的源代码级采用各种加密算法来保证数据的安全,对于没有源代码的应用无能为力。针对相关技术中对于没有源代码的应用无法再新增加解密功能的问题,目前尚未提出有效的解决方案。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种加解密功能的实现方法、装置及服务器。根据本专利技术的一个方面,提供了一种加解密功能的实现方法,包括:对安卓安装包(AndroidPackage,简称为APK)文件进行反编译,得到smali(一种安卓系统的JAVA虚拟机Dalvik所使用的寄存器语言)文件;将所述smali文件中用于执行输入/输出(I/O)操作的代码替换为自定义的代码,其中,所述自定义的代码用于执行I/O操作以及对I/O的数据进行加解密操作;对替换过的所述smali文件进行编译并签名,得到新的APK文件。优选地,将所述smali文件中用于执行I/O操作的代码替换为自定义的代码包括:将所述smali文件中用于执行I/O操作的类替换为自定义的类,其中,所述用于执行I/O操作的类包括以下至少之一:FileOutputStream、FileInputStream、FileReader、FileWriter、RandomAccessFile等。优选地,将所述smali文件中用于执行I/O操作的类替换为自定义的类包括:确定所述smali文件中所使用到的用于执行I/O操作的类;将所述smali文件所使用到的用于执行I/O操作的类替换为自定义的类。优选地,在将所述smali文件中用于执行I/O操作的类替换为自定义的类之前,所述方法还包括:解析所述APK文件的AndroidManifest.xml文件,得到原始包名,其中,所述原始包名用于在进行注入替换时smali文件位置的定位。优选地,在解析所述APK文件的AndroidManifest.xml文件之后,所述方法还包括:获取所述APK文件的Application的信息;在所述APK文件有继承自Application类的子类的情况下,将自定义的Application子类smali代码注入到所述smali文件本身的Application子类代码中;在所述APK文件没有继承自Application子类的情况下,在AndroidManifes.xml中添加android:name的属性,其中,所述属性的值是自定义的Application子类的完整名称。优选地,在解析所述APK文件的AndroidManifest.xml文件之后,所述方法还包括:将所述smali文件中的继承自Activity子类的父类替换成自定义的Activity子类BaseActivity。优选地,在将所述smali文件中用于执行I/O操作的代码替换为自定义的代码之后,所述方法还包括:在AndroidManifest.xml中增加用于指示进行过代码注入替换操作的标记。根据本专利技术的另一个方面,还提供了一种加解密功能的实现装置,包括:反编译模块,用于对APK文件进行反编译,得到smali文件;替换模块,用于将所述smali文件中用于执行输入/输出I/O操作的代码替换为自定义的代码,其中,所述自定义的代码用于执行I/O操作以及对I/O的数据进行加解密操作;编译模块,用于对替换过的所述smali文件进行编译并签名,得到新的APK文件。根据本专利技术的另一个方面,还提供了一种服务器,包括:上述的加解密功能的实现装置;其中,所述服务器还包括:第一获取装置,用于获取所述APK文件;提供装置,用于提供所述新的APK文件。优选地,所述服务器还包括:第二获取装置,用于获取签名所述新的APK文件的keystore。通过本专利技术,采用对APK文件进行反编译,得到smali文件;将smali文件中用于执行输入/输出I/O操作的代码替换为自定义的代码,其中,自定义的代码用于执行I/O操作以及对I/O的数据进行加解密操作;对替换过的smali文件进行编译并签名,得到新的APK文件的方式,解决了对于没有源代码的应用无法再新增加解密功能的问题,减少了应用的维护成本。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据本专利技术实施例的加解密功能的实现方法的流程图;图2是根据本专利技术实施例的加解密功能的实现装置的结构示意图;图3是根据本专利技术实施例的服务器的结构示意图;图4是根据本专利技术优选实施例的打包注入代码的流程图一;图5是根据本专利技术优选实施例的打包注入代码的流程图二。具体实施方式下文中将参考附图并结合实施例来详细说明本专利技术。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。本专利技术实施例提供了一种加解密功能的实现方法,图1是根据本专利技术实施例的加解密功能的实现方法的流程图,如图1所示,该流程包括如下步骤:步骤S102,对APK文件进行反编译,得到smali文件;步骤S104,将smali文件中用于执行I/O操作的代码替换为自定义的代码,其中,自定义的代码用于执行I/O操作以及对I/O的数据进行加解密操作;步骤S106,对替换过的smali文件进行编译并签名,得到新的APK文件。通过上述步骤,将smali文件中用于I/O操作的代码替换为还可以进行加解密操作的自定义的代码,从而在没有APK文件源码的情况下,实现了APK文件的I/O数据的加解密,解决了对于没有源代码的应用无法再新增加解密功能的问题,减少了应用的维护成本,同时也提升了应用的安全性。其中,smali是指安卓系统里的Java虚拟机(Dalvik本文档来自技高网...
【技术保护点】
一种加解密功能的实现方法,其特征在于包括:对安卓安装包APK文件进行反编译,得到smali文件;将所述smali文件中用于执行输入/输出I/O操作的代码替换为自定义的代码,其中,所述自定义的代码用于执行I/O操作以及对I/O的数据进行加解密操作;对替换过的所述smali文件进行编译并签名,得到新的APK文件。
【技术特征摘要】
1.一种加解密功能的实现方法,其特征在于包括:对安卓安装包APK文件进行反编译,得到smali文件;将所述smali文件中用于执行输入/输出I/O操作的代码替换为自定义的代码,其中,所述自定义的代码用于执行I/O操作以及对I/O的数据进行加解密操作;对替换过的所述smali文件进行编译并签名,得到新的APK文件。2.根据权利要求1所述的方法,其特征在于,将所述smali文件中用于执行I/O操作的代码替换为自定义的代码包括:将所述smali文件中用于执行I/O操作的类替换为自定义的类,其中,所述用于执行I/O操作的类包括以下至少之一:FileOutputStream、FileInputStream、FileReader、FileWriter、RandomAccessFile。3.根据权利要求2所述的方法,其特征在于,将所述smali文件中用于执行I/O操作的类替换为自定义的类包括:确定所述smali文件中所使用到的用于执行I/O操作的类;将所述smali文件所使用到的用于执行I/O操作的类替换为自定义的类。4.根据权利要求2所述的方法,其特征在于,在将所述smali文件中用于执行I/O操作的类替换为自定义的类之前,所述方法还包括:解析所述APK文件的AndroidManifest.xml文件,得到原始包名,其中,所述原始包名用于在进行注入替换时smali文件位置的定位。5.根据权利要求4所述的方法,其特征在于,在解析所述APK文件的AndroidManifest.xml文件之后,所述方法还包括:获取所述APK文件的Application的信息;在所述APK文件有继承自Application类的子类的情况下,将...
【专利技术属性】
技术研发人员:范韬,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。