刷朋友圈、玩游戏、看新闻,智能手机正在以我们无法想象的速度飞快发展,但是随之而来的安全问题也越来越引人关注,APP二次打包、反编译、盗版的现象屡见不鲜,因此需要对APK进行加固保护。
目前市面上常见的APK保护方式主要有图片故意破坏、伪加密、APK包破坏,但是这些方式的保护效果都存在局限性:图片故意破坏在老版本的APK tool上面可行,在最新版本的APK tool就不可行;伪加密的加密方式和解密方式也早已公布导致它的安全程度大大降低;APK包破坏会在个别市场不能识别而导致不能上传,并且使用压缩文件修复工具也能把它修复好导致所做的保护消失。
下面,小编就来解析一下APK高级保护的第三种方式——花指令
花指令是程序中有一些指令,由设计者特别构思,希望使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。“花指令”这个词来源于汇编语言,它的思想是非常不错的,它的另一个目的就是利用反编译工具漏洞,来使工具无法使用。
接下来,我们就在JAVA代码处制“花指令”,让反编译工具(jd-gui)无法反编译查询你的JAVA代码。jd-gui的bug其实挺多了,很多特殊代码块或者字段集都能够让其崩溃无法反编译出源码。
比如:
private static final char[] wJ = "0123456789abcdef".toCharArray();
public static String imsi = "204046330839890";
public static String p = "0";
public static String keyword = "电话";public static String tranlateKeyword = "%E7%94%B5%E8%AF%9D";
在每个类里面加入如上字段,你会发现反编译的类通过jd-gui查看后的结果如下:
再来看一下爱加密的三层保护技术,即DEX加壳保护、DEX指令动态加载保护、高级混淆保护,可以保证APP的动态安全和静态安全,黑客将没有机会进行任何破解。爱加密更在年前推出了SO库保护,C/C++层面的代码得到了专业保护。 爱加密还可以通过对APK包进行精准的安全检测分析,极大的节省了APP开发人员自身对APP漏洞分析投入的时间、精力。之后可对APP提供一个全方位的加密保护服务并进行实时的渠道监测和信息反馈,更好保护app开发者的权益不被侵害。
分享:APK高级保护方法解析(三)