防止应用程序被逆向工程的加密方法技术

技术编号:26730817 阅读:31 留言:0更新日期:2020-12-15 14:32
本发明专利技术公开了防止应用程序被逆向工程的加密方法,包括如下步骤:将应用程序对应的安装包文件进行二进制读取得到二进制安装包文件和外壳dex文件;对二进制安装包文件内容进行加密后得到加密后dex文件;将外壳dex文件与加密后dex文件合并成新的dex文件;对新的dex文件重新打包获得加密后的安装包文件。本发明专利技术的防止应用程序被逆向工程的加密方法,首先对安装包文件进行二进制解释,然后对二进制安装包文件字节码进行独有的加密算法,最后再增加一层加密算法的外壳,因此保护了安装包文件里的核心代码算法,防止安装包文件被二次打包,解密算法只有自己拥有,增大破解的难度。对于用户来说,这是无感知的,不影响用户的正常使用。

【技术实现步骤摘要】
防止应用程序被逆向工程的加密方法
本专利技术属于加密
,具体涉及一种防止应用程序被逆向工程的加密方法。
技术介绍
如今Android(安卓)手机已是全球范围内占有市场份额最多的手机,而手机上的App更是超过了1000万个,可以说一个手机App的是否安全直接影响到用户的使用。逆向工程,就是将已经打包好的AndoridApp(应用程序)还原成dex文件(被编译的代码文件)和res文件(文件资源),再将dex文件转化为jar文件,然后使用可视化代码工具进行代码的修改,此时便可以对AndoridApp进行广告植入、界面修改、重新二次打包等操作。虽然Android官方有配置特定的规则写入文件,对生产的apk包(Android应用程序包)和jar包进行基础加密,但是在市面上有各式各样的逆向工程AndoridApp软件(例如Android逆向助手,安卓修改大师等),轻而易举就能将AndoridApp的源码逆向工程出来,而且Android是基于java语言的,java语言的逆向工程工具更是数不胜数,基本能做到100%反编译,导致AndoridApp被盗用、篡改、调试等。
技术实现思路
为了解决上述问题,本专利技术提供一种防止应用程序被逆向工程的加密方法,首先对安装包文件进行二进制解释,然后对二进制安装包文件字节码进行独有的加密算法,最后再增加一层加密算法的外壳,在一定程度上保护了安装包文件里的核心代码算法,防止安装包文件被二次打包。本专利技术所采用的技术方案是:一种防止应用程序被逆向工程的加密方法,包括如下步骤:S1、将应用程序对应的安装包文件进行二进制读取得到二进制安装包文件以及外壳dex文件;S2、对所述二进制安装包文件内容进行加密后得到加密后dex文件;S3、将所述外壳dex文件与加密后dex文件合并成新的dex文件;S4、对所述新的dex文件重新打包获得加密后的安装包文件。优选地,所述S2具体包括如下步骤:S21、将所述二进制安装包文件内的每一个字节通过加密算法加密得到加密后dex文件;S22、将所述加密后dex文件进行二进制读取得到读取长度,并在读取长度末尾加空白字节,得到带有空白字节的加密后dex文件。优选地,所述S3具体为:将所述外壳dex文件添加到带有空白字节的加密后dex文件末尾的空白字节内,进而合并成新的dex文件。优选地,所述S21具体包括如下步骤:S211、将二进制安装包文件内的每一个字节通过异或运算得到对应的加密代码;S212、将所述加密代码再进行Base64编码得到加密后dex文件。优选地,所述空白字节的长度为4个字节。优选地,所述S3中,所述将外壳dex文件添加到带有空白字节的加密后dex文件末尾的空白字节内,具体为:对带有空白字节的加密后dex文件通过安全散列算法修改末尾4位空白字节数据。优选地,所述安全散列算法为安全散列算法1sha-1。与现有技术相比,本专利技术的防止应用程序被逆向工程的加密方法,首先对安装包文件进行二进制解释,然后对二进制安装包文件字节码进行独有的加密算法,最后再增加一层加密算法的外壳,因此在一定程度上保护了安装包文件里的核心代码算法,防止安装包文件被二次打包,解密算法只有自己拥有,相对安全,增大破解的难度,使应用程序内数据得到保护、防止日志被泄露、防止程序被动态调试、防止被备份、防止被动态注入恶意代码。另外,对于用户来说,这是无感知的,不影响用户的正常使用。附图说明图1是本专利技术实施例提供的一种防止应用程序被逆向工程的加密方法的流程图;图2是本专利技术实施例提供的一种防止应用程序被逆向工程的加密方法的具体流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。实施例本专利技术实施例提供一种防止应用程序被逆向工程的加密方法,如图1-2所示,包括如下步骤:S1、将应用程序对应的安装包文件进行二进制读取得到二进制安装包文件以及外壳dex文件;S2、对所述二进制安装包文件内容进行加密后得到加密后dex文件;S3、将所述外壳dex文件与加密后dex文件合并成新的dex文件;S4、对所述新的dex文件重新打包获得加密后的安装包文件。这样,通过将应用程序内未加密的安装包文件进行二进制读取后得到二进制安装包文件以及外壳dex文件,对二进制安装包文件内容进行加密后得到加密后dex文件;将外壳dex文件与加密后dex文件合并成新的dex文件,对新的dex文件重新打包获得加密后的安装包文件,进而防止应用程序被逆向工程,使应用程序内数据得到保护、防止日志被泄露、防止程序被动态调试、防止被备份、防止被动态注入恶意代码。所述S2具体包括如下步骤:S21、将所述二进制安装包文件内的每一个字节通过加密算法加密得到加密后dex文件;S22、将所述加密后dex文件进行二进制读取得到读取长度,并在读取长度末尾加空白字节,得到带有空白字节的加密后dex文件。这样,首先将二进制安装包文件内的每一个字节通过加密算法加密得到加密后dex文件;然后将加密后dex文件进行二进制读取得到读取长度,并将读取长度末尾加空白字节,得到带有空白字节的加密后dex文件,其中空白字节是用于占用空间的,以便外壳dex文件合并使用。所述S3具体为:将所述外壳dex文件添加到带有空白字节的加密后dex文件末尾的空白字节内,进而合并成新的dex文件。这样,首先将外壳dex文件添加到带有空白字节的加密后dex文件末尾的空白字节内,进而合并成新的dex文件,也就是把空白字节替换掉,最后将新的dex文件重新打包得到加密后的安装包文件,从而可以使应用程序内数据得到保护、防止日志被泄露、防止程序被动态调试、防止被备份、防止被动态注入恶意代码。所述S21具体包括如下步骤:S211、将二进制安装包文件内的每一个字节通过异或运算得到对应的加密代码;S212、将所述加密代码再进行Base64编码得到加密后dex文件。这样,通过将二进制安装包文件内的每一个字节通过异或运算进行第一次加密得到加密代码,将加密代码再进行Base64编码进行第二次加密得到加密后dex文件,更能保障加密效果,提高安全性。所述空白字节的长度为4个字节。因为一般外壳dex文件的长度为4个字节,所以此处空白字节的长度设为4个字节。所述S21中,所述将外壳dex文件添加到带有空白字节的加密后dex文件末尾的空白字节内,具体为:对带有空白字节的加密后dex文件通过安全散列算法修改末尾4位空白字节数据。这样,通过对带有空白字节的加密后dex文件通过安全散列算法修改末尾4位空白字节数据(一般为加密后dex文件的第32-35位字节数据),即本文档来自技高网...

【技术保护点】
1.一种防止应用程序被逆向工程的加密方法,其特征在于,包括如下步骤:/nS1、将应用程序对应的安装包文件进行二进制读取得到二进制安装包文件以及外壳dex文件;/nS2、对所述二进制安装包文件内容进行加密后得到加密后dex文件;/nS3、将所述外壳dex文件与加密后dex文件合并成新的dex文件;/nS4、对所述新的dex文件重新打包获得加密后的安装包文件。/n

【技术特征摘要】
1.一种防止应用程序被逆向工程的加密方法,其特征在于,包括如下步骤:
S1、将应用程序对应的安装包文件进行二进制读取得到二进制安装包文件以及外壳dex文件;
S2、对所述二进制安装包文件内容进行加密后得到加密后dex文件;
S3、将所述外壳dex文件与加密后dex文件合并成新的dex文件;
S4、对所述新的dex文件重新打包获得加密后的安装包文件。


2.根据权利要求1所述的防止应用程序被逆向工程的加密方法,其特征在于,所述S2具体包括如下步骤:
S21、将所述二进制安装包文件内的每一个字节通过加密算法加密得到加密后dex文件;
S22、将所述加密后dex文件进行二进制读取得到读取长度,并在读取长度末尾加空白字节,得到带有空白字节的加密后dex文件。


3.根据权利要求2所述的防止应用程序被逆向工程的加密方法,其特征在于,所述S3具体为:将所述外壳dex文件添加到带有空白字节的加...

【专利技术属性】
技术研发人员:蒋杰文潘叶江
申请(专利权)人:华帝股份有限公司
类型:发明
国别省市:广东;44

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

1