一种防止安卓应用被破解篡改的方法及终端技术

技术编号:28134874 阅读:27 留言:0更新日期:2021-04-21 19:01
本发明专利技术公开了一种防止安卓应用被破解篡改的方法及终端,确定所述安卓应用预设个数的关键启动流程,并设定所述预设个数的关键启动流程的调用顺序,形成对应的调用逻辑;将所述调用逻辑进行封装并编译成so文件;修改所述安卓应用只能通过所述so文件启动;限定安卓应用必须按照所述预设个数的关键启动流程调用顺序才能正常启动,提升了安卓应用被破解篡改的难度。难度。难度。

【技术实现步骤摘要】
一种防止安卓应用被破解篡改的方法及终端


[0001]本专利技术涉及安卓应用安全
,具体涉及一种防止安卓应用被破解篡改的方法。

技术介绍

[0002]目前市场上针对安卓应用的恶意攻击越来越激烈,安卓应用的安装包都是以APK文件的格式进行存储,利用压缩工具或逆向工具能得到安卓程序的源码,分析源码可以了解应用程序中的一些关键算法和业务逻辑,甚至可以通过插入代码对软件进行恶意的篡改和破坏。针对上述问题,现一般采用对安卓应用进行加壳处理来防止APK文件被反编译。利用加密算法对源APK文件进行加密,将壳APK与之进行合并得到新的dex文件,替换壳程序中的dex文件,得到新的APK。我们将新的APK文件称为脱壳程序APK,它负责解密源APK文件,加载APK,使之能正常运行。虽然这种方式可以有效地防止逆向工具对安卓程序的反编译,但是仍然需要在APK本身里面做一个脱壳程序进行解密,这样会影响应用程序启动性能,且现阶段的加壳技术多为第三方平台提供,例如:爱加密和梆梆加固等,固定的加壳方案容易被其他人破解,这同时也存在着一些安全隐患。

技术实现思路

[0003]本专利技术所要解决的技术问题是:提供一种防止安卓应用被破解篡改的方法及终端,能够提高安卓应用的安全性。
[0004]为了解决上述技术问题,本专利技术采用的一种技术方案为:
[0005]一种防止安卓应用被破解篡改的方法,包括步骤:
[0006]S1、确定所述安卓应用预设个数的关键启动流程,并设定所述预设个数的关键启动流程的调用顺序,形成对应的调用逻辑;
[0007]S2、将所述调用逻辑进行封装并编译成so文件;
[0008]S3、修改所述安卓应用只能通过所述so文件启动。
[0009]为了解决上述技术问题,本专利技术采用的另一种技术方案为:
[0010]一种防止安卓应用被破解的终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0011]S1、确定所述安卓应用预设个数的关键启动流程,并设定所述预设个数的关键启动流程的调用顺序,形成对应的调用逻辑;
[0012]S2、将所述调用逻辑进行封装并编译成so文件;
[0013]S3、修改所述安卓应用只能通过所述so文件启动。
[0014]本专利技术的有益效果在于:通过识别梳理安卓应用关键启动流程,自定义安卓应用关键启动流程的数量以及调用的顺序,可以自由地控制复杂度来提升安卓应用被破解篡改的难度;修改安卓应用关键启动流程必须按一定顺序调用,即使安卓应用被外部破坏篡改,用户下载安装也无法正常启动使用;将调用逻辑封装在C++程序中进行编译,编译后生成的
so文件为二进制不可读,当限定系统启动只能通过so文件来加载程序时,由于so文件自身的属性,使恶意攻击者无法查看so文件中关于安卓应用的关键启动流程的调用逻辑,从而可以有效地防止安卓应用被破解篡改,提高了安卓应用的安全性。
附图说明
[0015]图1为本专利技术实施例的一种防止安卓应用被破解篡改的方法的步骤流程图;
[0016]图2为本专利技术实施例的一种防止安卓应用被破解篡改的终端的结构示意图;
[0017]标号说明:
[0018]1、一种防止安卓应用被破解篡改的终端;2、存储器;3、处理器。
具体实施方式
[0019]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0020]请参照图1,一种防止安卓应用被破解篡改的方法,所述方法包括:
[0021]一种防止安卓应用被破解篡改的方法,包括步骤:
[0022]S1、确定所述安卓应用预设个数的关键启动流程,并设定所述预设个数的关键启动流程的调用顺序,形成对应的调用逻辑;
[0023]S2、将所述调用逻辑进行封装并编译成so文件;
[0024]S3、修改所述安卓应用只能通过所述so文件启动。
[0025]从上述描述可知,本专利技术的有益效果在于:通过识别梳理安卓应用关键启动流程,自定义安卓应用关键启动流程的数量以及调用的顺序,可以自由地控制复杂度来提升安卓应用被破解篡改的难度;修改安卓应用关键启动流程必须按一定顺序调用,即使应用程序被外部破坏篡改,用户下载安装也无法正常启动使用;将调用逻辑封装在C++程序中进行编译,编译后生成的so文件为二进制不可读,当限定系统启动只能通过so文件来加载程序时,由于so文件自身的属性,使恶意攻击者无法查看so文件中关于应用的关键启动流程的调用逻辑,从而可以有效地防止安卓应用被破解篡改,提高了安卓应用的安全性。
[0026]进一步的,所述步骤S1包括:
[0027]确定所述安卓应用中所有可独立运行并且决定所述安卓应用开启后业务逻辑是否能够正常运行的启动流程;
[0028]从确定出的所述安卓应用的所有启动流程中随机选出预设个数的启动流程;
[0029]根据所述预设个数的启动流程确定它们所有可能的调用顺序;
[0030]从所有可能的调用顺序中随机选择一种,作为设定的调用顺序;
[0031]根据随机选出的预设个数的启动流程及其对应的调用顺序形成对应的调用逻辑。
[0032]由上述描述可知,选定能影响安卓应用能否正常启动的可独立运行的启动流程作为所述安卓应用预设个数的关键启动流程,可以保证当所设定的关键启动流程无法完整执行时,安卓应用无法正常启动,提高了应用的安全性;从所有的关键启动流程中随机选择预设个数并随机排列选择出的的关键启动流程,从中选择其中一种作为调用顺序,增加了安卓应用被破解篡改的复杂度。
[0033]进一步的,所述步骤S1还包括:
[0034]在所述调用逻辑中增加一个安全性流程;
[0035]所述安全性流程用于在所述安卓应用启动的过程中预埋一个数据;
[0036]所述数据用于在所述安卓应用启动后由对应的业务逻辑读取并应用,若对应的业务逻辑读取不正确,则所述安卓应用退出。
[0037]由上述描述可知,增加一个安全性流程作为所述安卓应用预设个数的关键启动流程之一,拆解原设定的应用启动关键流程调用顺序,将一部分数据初始化分离到关键流程之前,增加了应用启动关键流程的复杂度,在应用启动过程时埋下数据,后续业务逻辑如若要正常执行,需要对该数据进行正确读取,若读取错误,安卓应用退出,在应用程序需要按照设定的关键流程调用顺序才能正常执行的前提下,又提供了一层安全保障,进一步提高安卓应用的安全性。
[0038]进一步的,所述步骤S1包括:
[0039]在确定所述调用逻辑之后,对所述安卓应用的关键启动流程进行改造,使所述安卓应用只有按照所述确定的调用逻辑才能正常启动;
[0040]所述步骤S3之后还包括步骤:
[0041]接收输入的调用逻辑;
[0042]判断所述输入的调用逻辑中包含的各个启动流程以及各个启动流程的调用顺序是否与确定的各个关本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种防止安卓应用被破解篡改的方法,其特征在于,包括步骤:S1、确定所述安卓应用预设个数的关键启动流程,并设定所述预设个数的关键启动流程的调用顺序,形成对应的调用逻辑;S2、将所述调用逻辑进行封装并编译成so文件;S3、修改所述安卓应用只能通过所述so文件启动。2.根据权利要求1所述的一种防止安卓应用被破解篡改的方法,其特征在于,所述步骤S1包括:确定所述安卓应用中所有可独立运行并且决定所述安卓应用开启后业务逻辑是否能够正常运行的启动流程;从确定出的所述安卓应用的所有启动流程中随机选出预设个数的启动流程;根据所述预设个数的启动流程确定它们所有可能的调用顺序;从所有可能的调用顺序中随机选择一种,作为设定的调用顺序;根据随机选出的预设个数的启动流程及其对应的调用顺序形成对应的调用逻辑。3.根据权利要求1所述的一种防止安卓应用被破解篡改的方法,其特征在于,所述步骤S1还包括:在所述调用逻辑中增加一个安全性流程;所述安全性流程用于在所述安卓应用启动的过程中预埋一个数据;所述数据用于在所述安卓应用启动后由对应的业务逻辑读取并应用,若对应的业务逻辑读取不正确,则所述安卓应用退出。4.根据权利要求1所述的一种防止安卓应用被破解篡改的方法,其特征在于,所述步骤S1还包括:在确定所述调用逻辑之后,对所述安卓应用的关键启动流程进行改造,使所述安卓应用只有按照所述确定的调用逻辑才能正常启动;所述步骤S3之后还包括步骤:接收输入的调用逻辑;判断所述输入的调用逻辑中包含的各个启动流程以及各个启动流程的调用顺序是否与确定的各个关键启动流程以及各个关键启动流程的调用顺序均一致,若否,则不启动所述安卓应用。5.根据权利要求1所述的一种防止安卓应用被破解篡改的方法,其特征在于,所述步骤S2还包括:将所述调用逻辑进行封装之后,对调用逻辑程序进行代码混淆。6.一种防止安卓应用被破解篡改的终端,包括存储器、处理器及存储在存储...

【专利技术属性】
技术研发人员:刘德建苏昌骏王杰光郭玉湖陈宏
申请(专利权)人:福建天晴数码有限公司
类型:发明
国别省市:

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

1