安卓系统的软件保护方法、软件应用方法及相关装置的制造方法

文档序号:8431056阅读:170来源:国知局
安卓系统的软件保护方法、软件应用方法及相关装置的制造方法
【技术领域】
[0001]本发明涉及信息安全领域,尤其涉及一种安卓系统的软件保护方法、软件应用方法及相关装置。
【背景技术】
[0002]随着移动互联网的迅速发展,智能移动终端越来越多,其中,在移动终端系统中,安卓(Android)系统占据了较大比例。Android系统上的软件安装包(apk, AndroidPackage)主流开发语言为Java,Java语言相比于其他软件开发语言而言,反编译、逆向修改较为容易,因此,攻击者通过反编译apk,嵌入恶意代码、破解付费软件的计费点、嵌入垃圾广告插件等等,可能会导致用户信息泄露、信息丢失,给用户带来损失,另一方面,也使软件的版权不能得到保障,给软件开发者带来损失。
[0003]现有的Android软件保护方法主要为代码混淆,在软件发布前,对代码进行代码混淆,代码混淆也称花指令,是将计算机程序代码转换成一种功能上等价,但是难于阅读和理解的形式。但代码混淆只能对用户自定义的类、函数、变量进行混淆处理,为了保证程序的正常运行,对系统应用程序编程接口(api, Applicat1n Programming Interface)、资源id、字符串id都不能进行混淆,这就使得攻击者通过在代码中查找系统ap1、资源id、字符串id,将其进行替换或修改,从而达到篡改apk的目的。因此,对于现有的Android软件保护方法,apk仍然比较容易被逆向分析、被篡改。

【发明内容】

[0004]本发明实施例提供一种安卓Android系统的软件保护方法、软件应用方法及相关装置,用以解决现有技术中存在的apk容易被逆向分析、被篡改的问题。
[0005]本发明实施例提供一种Android系统的软件保护方法,包括:
[0006]获取待保护软件对应的第一代码;
[0007]将所述第一代码中的系统应用程序编程接口 api函数代码,替换为用于以字符串方式进行api调用的api字符串代码,得到与所述待保护软件对应的第二代码;
[0008]通过扰乱处理程序对所述第二代码中的所述api字符串代码中的字符串进行代码扰乱处理,得到与所述待保护软件对应的第三代码;
[0009]对所述第三代码以及所述扰乱处理程序对应的扰乱恢复程序进行打包处理,得到所述待保护软件的最新安装包apk。
[0010]采用本发明实施例提供的方法,首先将待保护软件对应的第一代码中的系统应用程序编程接口 api函数代码,替换为用于以字符串方式进行api调用的api字符串代码,然后可以对api函数对应的字符串进行扰乱处理,并且打包时将扰乱恢复程序一起打包,得到apk,以便在安装过程中对扰乱处理的字符串进行恢复,这样,既保证了程序的正常运行,又避免了攻击者针对系统api进行软件篡改的行为,增加了 apk被逆向分析的难度。
[0011]相应的,本发明实施例还提供一种Android系统的软件保护装置,包括:
[0012]代码获取单元,用于获取待保护软件对应的第一代码;
[0013]替换单元,用于将所述第一代码中的系统应用程序编程接口 api函数代码,替换为用于以字符串方式进行api调用的api字符串代码,得到与所述待保护软件对应的第二代码;
[0014]扰乱处理单元,用于通过扰乱处理程序对所述第二代码中的所述api字符串代码中的字符串进行代码扰乱处理,得到与所述待保护软件对应的第三代码;
[0015]打包单元,用于对所述第三代码以及所述扰乱处理程序对应的扰乱恢复程序进行打包处理,得到所述待保护软件的最新安装包apk。
[0016]基于上述软件保护方法,本发明实施例还提供一种Android系统的软件应用方法,包括:
[0017]获取所述最新安装包apk ;
[0018]对所述最新apk进行解压,得到所述待保护软件对应的所述第三代码以及所述扰乱恢复程序;
[0019]使用所述扰乱恢复程序对所述第三代码中的经过扰乱处理所述api字符串代码中的字符串进行恢复,得到恢复后的所述待保护软件对应的所述第二代码;
[0020]通过执行所述待保护软件对应的所述第二代码,完成所述最新apk的安装。
[0021]相应的,本发明实施例还提供一种Android系统的软件应用装置,包括:
[0022]安装包获取单元,用于获取所述最新安装包apk ;
[0023]解压单元,用于对所述最新apk进行解压,得到所述待保护软件对应的所述第三代码以及所述扰乱恢复程序;
[0024]扰乱恢复单元,使用所述扰乱恢复程序对所述第三代码中的经过扰乱处理所述api字符串代码中的字符串进行恢复,得到恢复后的所述待保护软件对应的所述第二代码;
[0025]执行单元,用于通过执行所述待保护软件对应的所述第二代码,完成所述最新apk的安装。
[0026]本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0027]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0028]图1为本发明实施例提供的Android系统的软件保护方法的流程图之一;
[0029]图2为本发明实施例提供的Android系统的软件保护方法的流程图之二 ;
[0030]图3为本发明实施例提供的Android系统的软件应用方法的流程图;
[0031]图4为本发明实施例提供的Android系统的软件保护装置的结构示意图;
[0032]图5为本发明实施例提供的Android系统的软件应用装置的结构示意图。
【具体实施方式】
[0033]为了给出增加Android系统的软件安装包apk被逆向分析的难度的实现方案,本发明实施例提供了一种安卓Android系统的软件保护方法、软件应用方法及相关装置,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0034]本发明实施例提供一种安卓Android系统的软件保护方法,具体步骤如图1所示,包括:
[0035]步骤101、获取待保护软件对应的第一代码。
[0036]步骤102、将该第一代码中的系统应用程序编程接口 api函数代码,替换为用于以字符串方式进行api调用的api字符串代码,得到与该待保护软件对应的第二代码。
[0037]步骤103、通过扰乱处理程序对该第二代码中的该api字符串代码中的字符串进行代码扰乱处理,得到与该待保护软件对应的第三代码。
[0038]步骤104、对该第三代码以及该扰乱处理程序对应的扰乱恢复程序进行打包处理,得到该待保护软件的最新安装包apk。
[0039]在上述步骤101中,获取待保护软件对应的第一代码,可以是获取待保护软件的源代码,将该源代码作为待保护软件对应的第一代码,即可以直接对待保护软件的源代码采用本发明实施例提供的软件保护方法;如果在没有源代码的情况下,也可以获取对待保护软件的源代码进行打包处理得到的原始安装包apk,对该原始apk进行反编译,得到待保护软件反编译后的代码,作为该待保护软件对应的第一代码,针对该第一代码采用本发明实施例提供的软件保护方法对待保护软件进行保护。其中,对原始apk进行反编译,有多种方法,可以通过相关反编译工具(如apktool),将apk反编译为smali代码,将smali代码作为待保护软件对应的第一代码,采用的反编译方法与现有技术中相同,在此不再赘述。
[0040]采用本发明实施
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1