[发明专利]移动应用程序的安全加固的方法及装置有效
申请号: | 201711422051.3 | 申请日: | 2017-12-25 |
公开(公告)号: | CN107977553B | 公开(公告)日: | 2020-07-10 |
发明(设计)人: | 贾世准;麦松涛;冯晓荣 | 申请(专利权)人: | 中国电子产品可靠性与环境试验研究所 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 陈金普 |
地址: | 511300 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 移动 应用程序 安全 加固 方法 装置 | ||
本发明公开了一种移动应用程序的安全加固的方法及装置,涉及计算机技术领域,该方法包括:对待加固的移动应用程序APK文件进行解压,获取待加固dex文件和Manifest文件;在待加固dex文件中,抽取待保护的类和方法的索引代码,并重写待保护的类和方法的程序入口代码;对索引代码进行加密,获取加密索引代码数据并进行单独存放;生成用于解密加密索引代码数据并动态还原索引代码的so库文件;在Manifest文件中更改用于读取程序入口代码的加载器的信息;对已加固dex文件、加密索引代码数据、so库文件和更改后Manifest文件重新打包,获得加固后APK文件;通过代码隐藏机制和数据加密技术,有效地防止攻击者进行反编译,从而达到防逆向效果,增加应用的安全性、机密性和可用性。
技术领域
本发明涉及计算机技术领域,特别是涉及一种移动应用程序的安全加固方法及装置。
背景技术
目前,Android平台发展迅速,占据了当前移动智能终端的主流市场,由于Android系统开放源码的特性,由此带来的安全问题不可避免,其中Android应用程序基本使用Java语言进行开发,Java经过编译后生成dex文件,该文件经过反编译后,很容易可以看到程序的代码,该代码和源代码差异性很小,稍做修改就可以生成新的移动应用程序。因此攻击者将移动应用程序反编译后植入恶意代码,重新编译打包生成一个新的移动应用程序,上传到各大应用市场上供用户下载,则会形成一个盗版的移动应用程序或者是恶意的移动应用程序。
传统技术中的安全加固方法是基于代码混淆机制对Android应用的dex文件进行加固,以防止反编译。但是该安全加固方法难以得到上层函数和参数,很难提供良好的保护方式,并不能有效地保护应用在移动智能终端的应用程序中,导致操作系统性能缺乏可靠保障,提高了被攻击的风险。
发明内容
基于此,有必要针对移动应用程序的安全性、机密性和可用性的问题,本发明提供了一种移动应用程序的安全加固方法及装置。
本发明实施例中提供了一种移动应用程序的安全加固的方法,包括以下步骤:
对待加固的移动应用程序的APK文件进行解压,获取待加固dex文件和Manifest文件;
在所述待加固dex文件中,抽取待保护的类和方法的索引代码,并重写待保护的类和方法的程序入口代码,获得已加固dex文件;
对所述索引代码进行加密,获取加密索引代码数据并进行单独存放;
生成用于解密所述加密索引代码数据并动态还原所述索引代码的so库文件;
在所述Manifest文件中更改用于读取所述程序入口代码的加载器的信息;
利用签名工具对所述已加固dex文件、所述加密索引代码数据、所述so库文件和更改后的所述Manifest文件重新打包,获得加固后的所述APK文件。
相应地,本发明实施例中提供了一种移动应用程序的安全加固的装置,包括:
解压获取模块,用于对待加固的移动应用程序的APK文件进行解压,获取待加固dex文件和Manifest文件;
抽取重写模块,用于在所述待加固dex文件中,抽取待保护的类和方法的索引代码,并重写待保护的类和方法的程序入口代码,获得已加固dex文件;
加密模块,用于对所述索引代码进行加密,获取加密索引代码数据并进行单独存放;
生成模块,用于生成用于解密所述加密索引代码数据并动态还原所述索引代码的so库文件;
更改模块,用于在所述Manifest文件中更改用于读取所述程序入口代码的加载器的信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子产品可靠性与环境试验研究所,未经中国电子产品可靠性与环境试验研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711422051.3/2.html,转载请声明来源钻瓜专利网。