程序员人生 网站导航

Android代码混淆防反编译解决方案研究

栏目:互联网时间:2014-11-14 08:38:59

        做Android开发的都知道要做混淆去防apk被反编译、破解,通过proguard进行Java代码混淆。但是,Android代码混淆真的能起到实质性的作用吗?看下面分析

       1、Android代码混淆

 



        如上图,对Android 代码进行混淆后混淆器将代码中的所有变量、函数、类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的浏览难度。

        但是混淆的功效只能运作在APP已被破解后,而且只是增加破解者的难度时间,对其避免破解的作意图义不是很大。

        那末,Android代码混淆不能从根本上防破解,还有甚么方法呢?接下来看:

       2、反工具破解之伪加密

 


        伪加密是Android4.2.x系统发布前最流行的加密方式之1,通过java代码对APK(紧缩文件)进行伪加密,其修改原理是修改连续4位字节标记为”P K 01 02”的后第5位字节,奇数表示不加密偶数表示加密。伪加密后的APK不但可以避免PC端对它的解压和查看也一样能避免反编译工具编译。

        但是伪加密对其APK加密后市场也没法对其进行安全检测,部份市场会谢绝这类APK上传市场。伪加密的加密方式和解密方式也早已公布致使它的安全程度也大大下降。Android4.2.x系统没法安装伪加密的APK。

        从上可看,Android代码混淆确切不如伪加密。但是Android代码混淆、伪加密也不是最靠谱的方法。接下来继续看。

       3、反工具破解之APK紧缩文件破解

 

 


        APK在PC上面可以看做1个紧缩文件,在Android系统里面它就是1个手机系统软件文件。Android系统对APK的辨认是从标志头到标志尾,其他过剩数据都会疏忽。所以说在标志尾添加其他数据对把APK看作紧缩文件的PC端来讲这个文件被破坏了,所以你要对其进行解压或查看都会提示文件已破坏,用反编译工具也会提示文件已破坏,但是它却不会影响在Android系统里面的正常运行和安装而且也能兼容到所有系统。

        但是这类APK紧缩包破坏存在APK伪加密1样的问题,个别市场会不能辨认致使不能上传市场。使用紧缩文件修复工具也能把它修复好让我们做的保护消失。

        3个分析,Android代码混淆、伪加密、紧缩文件破解等均没法从根本上解决Android代码混淆防反编译、破解的问题。那末,我们继续探讨。

 

        4、使用第3方平台加密

        Google对Android APP的安全处理是给APK简单加密、java层源码加壳保护,对核心so库资源文件主配文件、第3方jar包却没有任何保护处理。所做的保护也早已被黑客攻破但并没有做任何升级保护致使Android APP现在没有任何安全性。

        拿移动利用安全行业的第3方平台――“爱加密”来讲,在Android代码混淆的基础上,以源码加壳保护、so库核心代码加壳保护、资源文件签名保护、APK防2次打包保护等方面来对APK进行全方面保护。而且加密后的APP完全不会影响其运行效力和用户体验,兼容性是最优的。

        综上所述,Android代码只做混淆是不行不行的,要真正保护Android代码的安全,还是要寻求更安全的加密保护技术!表只做Android代码混淆啦!

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐