[发明专利]一种Android App应用资源的隐藏加固方法有效
申请号: | 201910657080.0 | 申请日: | 2019-07-19 |
公开(公告)号: | CN110457872B | 公开(公告)日: | 2021-08-06 |
发明(设计)人: | 孙钦东;郭洪博;尉惠敏 | 申请(专利权)人: | 西安理工大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 西安弘理专利事务所 61214 | 代理人: | 杜娟 |
地址: | 710048 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android app 应用 资源 隐藏 加固 方法 | ||
本发明公开了一种Android App应用资源的隐藏加固方法,步骤包括:1)资源文件加固分为资源id加密和明文字符串加密;2)反编译App文件,获取到其.smali文件夹;3)使用正则表达式来判别.smali文件的语句,针对资源id和明文字符串分别进行加密并使用具体加密代码进行加密然后将其进行解密;4)插入解密代码文件;5)重新编译App文件并签名;6)安装加固之后的App,然后进行正常运行。本发明的方法,可以将软件中资源id进行隐藏,使得逆向攻击人员无法通过资源id进行定位到关键代码,也通过对明文字符串进行加密防止代码中的字符串对逆向人员进行提示有效消息。
技术领域
本发明属于Android应用技术领域,涉及一种Android App应用资源的隐藏加固方法。
背景技术
移动应用越来越普及,覆盖了人们生活的方方面面,如社交、新闻、娱乐、游戏等等。在移动应用快速发展的今天,越来越多的恶意应用逆向人员通过逆向手段破解移动应用,然后通过修改或者复用应用代码为自己谋取私利,严重破坏了正版应用开发人员的利益,侵害了用户的个人隐私,对移动应用的市场造成了极大的破坏,普通的客户并不具备区别正版移动应用与盗版移动应用的能力,更加促进了恶意盗版应用的发展和传播。目前的移动应用保护方案有很多,主要是是代码混淆、软件加壳、资源混淆、动态加载等技术。这些软件保护技术都是对应用软件的源代码或者资源文件的隐藏,这其中并没有对代码中的移动应用的资源id和未添加到资源文件的明文字符串进行操作的加密方法。而通常逆向人员破解都会通过资源文件找到资源文件的id,然后通过id进入源码文件定位到使用此资源id代码文件,进而对该模块进行分析破解。因此对源码文件中的资源id和明文字符串进行加密是非常重要的。
发明内容
本发明的目的是提供一种Android App应用资源的隐藏加固方法,解决了逆向攻击人员通过资源文件定位到源码模块,非法获取应用代码的问题。
本发明的技术方案,一种Android App应用资源的隐藏加固方法,其特征在于,按照以下步骤实施:
步骤1、将加密分为资源id加密和代码中的明文字符串加密;
步骤2、反编译App文件,获取到其.smali文件夹;
步骤3、使用正则表达式来判别步骤2中.smali文件夹中的语句,并将匹配的代码使用解密方法语句进行替换;
步骤4、插入解密代码文件;
步骤5、重新编译App文件并签名;
步骤6、安装加固之后的App,然后进行正常运行。
步骤1具体为:
资源id加密是针对代码中通过资源id查找资源文件的过程改变,代码中明文字符串针对未将字符串添加到资源文件,直接在代码中引用的字符串。
步骤3中,具体包括:
3.1)首先获取到所有的.smali文件,然后对每个文件进行遍历。
3.2)对于一个.smali文件,进行逐行读取,然后使用正则表达式进行匹配是否是资源id。
3.3)如果匹配成功,则使用加密方法生成随机密钥对资源id进行加密,并将密钥和加密后的数字当作参数在此调用解密方法,用解密方法将该行覆盖之后,进入3.2。如果不匹配则直接进入3.4。
3.4)使用正则表达式进行匹配字符串,如果匹配成功则修改,此处不使用随机密钥而直接将该字符串传递给加密字符串方法返回加密之后的字符串,然后使用以加密字符串为参数的解密字符串方法代替此行,修改完毕之后返回第3步,如果不匹配直接返回3.2。
3.5)重复修改下一个.smali文件。
的步骤6中,具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910657080.0/2.html,转载请声明来源钻瓜专利网。