android 代码混淆、伪加密、压缩文件破解真能防反编译?
做android混淆代码的目的就是防止apk被破解和反编译,很多程序猿采用的共同方法是通过Proguard进行Java代码混淆,从而有效防止被破解和反编译。几维安全却不这么认为,android 代码混淆真的可以起到实质性的作用吗?请看以下详细介绍。
Android代码混淆
从以上图中可以看出,程序猿对Android代码进行混淆以后混淆器就把代码里面所有函数、类以及变量名称全部加密为英文,一旦APP被破解之后该破解员很难识别这些简短的英文字母。但是,Android混淆代码只是从阅读代码上面增加了难度。
所以,android混淆代码还是不能从根源上进行破解和防止反编译,具体实施办法应该是以下这几个方面:
伪加密
伪加密是安卓系统发布最为流行的一款加密方式之一,主要是java对apk进行伪加密,其修改原理是修改连续4位字节标记为”P K 01 02”的后第5位字节,奇数表示不加密偶数表示加密。伪加密后的APK不但可以防止PC端对它的解压和查看也同样能防止反编译工具编译。
但是有一处弊端是android4.2.x系统不能安装伪加密的apk,伪加密对一些apk加密过后的市场不能进行安全监测,少数市场会拒绝apk上传。
APK压缩文件破解
众所周知,apk在pc端看上去就是一个压缩文件,但是在android系统里面就是一款系统软件,而且android对apk的识别都是从标志头到标志尾,其他多余数据统统无视。若在标志尾添加一些数据android被视为压缩文件,在pc端这个文件已经损坏,用反编译工具同样会提示文件已破坏,但是它却不会影响在Android系统里面的正常运行和安装,而且也能兼容到所有系统。
几维安全认为这种APK压缩包破坏存在和伪加密一样的问题,个别市场会存在不能识别的现象导致不能上传市场。使用压缩文件修复工具也能把它修复好让我们做的保护消失。所以这三种都无法从根本上解决android 代码混淆防止被破解和反编译。
第三方平台加密
几维安全提供专业的移动安全服务,在android 代码混淆的基础之上采用apk防二次打包保护、代码加壳保护、资源文件签名保护等保护措施,全方面保护APP安全,加密之后的APP不会影响到用户体验以及运行效率等问题,几维安全的兼容性也是最佳的。若想真正保护android 代码安全还应以安全加密技术为重点,不要只做android 代码混淆。更多知识内容请关注几维安全官网。
上一篇: 源代码加密软件的三种技术 你了解多少?