[发明专利]一种APK文件加固的方法在审
申请号: | 201410632466.3 | 申请日: | 2014-11-09 |
公开(公告)号: | CN104462883A | 公开(公告)日: | 2015-03-25 |
发明(设计)人: | 刘鹏 | 申请(专利权)人: | 刘鹏 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 佛山市广盈专利商标事务所(普通合伙) 44339 | 代理人: | 杨乐兵;傅俊朝 |
地址: | 528133 广东省佛山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 apk 文件 加固 方法 | ||
技术领域
本发明涉及移动终端应用安全领域,特别涉及一种APK文件加固的方法。
背景技术
APK(Android PacKage的缩写)即Android安装包。将APK文件(即APK应用程序)直接传到Android模拟器或Android操作系统的终端设备(比如安卓智能手机)中执行即可安装。APK文件其实是zip格式,但后缀名被修改为apk,在windows系统上可以通过解压缩工具(比如winrar软件)直接解压查看。解压APK文件后,一般的可看到的目录结构如下表1所示:
表1
Android应用程序开发的最后阶段是打包签名,生成APK文件供用户下载安装,打包封装成APK文件如图1所示。由此可以看出,如果能够对Dex文件和AndroidManifest.XML进行逆向,即可还原出应用APK文件的源代码,若在源代码的基础上加入恶意代码,重新签名打包,即可生成携带恶意代码的APK文件。
随着Android移动终端平台的日益发展,第三方应用程序大量涌现,对第三方应用的盗版和重打包现象日益严重。由于Android平台软件使用的编程语言是Java,而Java源代码编译后的二进制代码极易被反编译,导致其破解难度远小于其他使用编译性语言编写的程序。鉴于Android下APK文件能够很容易的由dex2jar和JD-GUI、JAD等反编译工具反编译为易于阅读的JAVA代码,从而代码中的明文字符串、库函数调用、核心功能函数等都一目了然,使得非法开发者对第三方应用程序的盗版或者核心功能的逆向工程变得更加容易。
发明内容
本发明提供了一种APK文件加固的方法,解决了APK文件(即APK应用程序)易于被反编译显示的问题,能够使第三方应用程序加固,最大化保护APK应用程序的安全。
本发明采用如下技术方案实现:一种APK文件加固的方法,其包括步骤:
将需要加固的APK文件的源代码分成作为主体部分的第一源代码及作为核心功能部分的第二源代码;
将第一源代码、第二源代码分别编译成第一APK文件及第二APK文件;
解压第一APK文件,提取第一APK文件中的第一classes.dex文件;
对第二APK文件进行加密处理,统计加密后第二APK文件的文件长度信息;
将加密后的第二APK文件及其文件长度信息添加在第一classes.dex文件的尾部;
重新计算并更新第一classes.dex文件中文件头信息,将更新后的第一classes.dex文件放回第一APK文件中,使用Android SDK中提供的签名工具对第一APK文件进行签名,即得到加固处理后的APK文件。
其中,重新计算的第一classes.dex文件中文件头信息包括效验码checksum字段、SHA-1签名signature字段和第一classes.dex文件的总长度file_size字段。
其中,对第二APK文件进行加密处理的加密方式为标准加密方式或已知的任意一种文件加密方法。
与现有技术相比,本发明具有如下有益效果:
通过本发明的方法,能够对Android下的APK应用程序进行加固处理,使反编译结果中APK文件的核心功能部分或关键部分的源代码得以隐藏,可以规避现有Android逆向工具的反编译,增加反编译的难度,从而可以极大程度地提高APK文件的安全性。
附图说明
图1是APK文件的打包封装流程示意图。
图2是本发明一个优选实施例的流程示意图。
具体实施方式
为了便于理解本申请的技术方案,申请人先对APK文件目录结构中classes.dex文件先做进一步的详细介绍:
classes.dex文件是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。classes.dex文件由文件头、索引区和数据区三大部分组成。其中,classes.dex文件头部分结构定义如下表2所示。
表2
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于刘鹏,未经刘鹏许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410632466.3/2.html,转载请声明来源钻瓜专利网。