码迷,mamicode.com
首页 > 移动开发 > 详细

Android apk如何加固防止被破解(防止逆向编译)

时间:2017-02-21 01:01:10      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:ndk   综合   国际   class   手机   转化   如何   java   加密   

现在主要工具是接触SDK,为了防止游戏包被破解编译,以及发现加密串,我来分享下以下几点:防破解技术主要有四种实现方式:1.代码混淆(ProGuard)技术2.签名比对技术动态库技术4.动态加载技术5.第三方平台加密以及检测漏洞这个在 Android 安全之如何反编译与加密apk包 这篇文章中也提及到了相关的知识点。

    第一种: 代码混淆技术(ProGuard) 该技术主要是进行代码混淆,降低代码逆向编译后的可读性,但该技术无法防止加壳技术进行加壳(加入吸费、广告、病毒等代码),而且只要是细心的人,依然可以对代码依然可以对代码进行逆向分析,所以该技术并没有从根本解决破解问题,只是增加了破解难度。

    第二种: 签名比对技术 该技术主要防止加壳技术进行加壳,但代码逆向分析风险依然存在。而且该技术并不能根本解决被加壳问题,如果破解者将签名比对代码注释掉,再编译回来,该技术就被破解了。

  第三种: NDK .so动态库技 术,该技术实现是将重要核心代码全部放在C文件中,利用NDK技术,将核心代码编译成.so动态库,再用JNI进行调用。该技术虽然能将核心代码保护起来,但被加壳风险依然存在。

   第四种: 动态加载技术,该技术在Java中是一个比较成熟的技术,而Android中该技术还没有被大家充分利用起来。      
           第五种: 第三方平台使用主要讲解第四种方法,该技术可以有效的防止逆向分析、被破解、被加壳等问题,动态加载技术分为以下几步:将核心代码编译成dex文件的Jar包对jar包进行加密处理在程序主入口利用NDK进行解密再利用ClassLoader将jar包进行动态加载利用反射技术将ClassLoader 设置成系统的ClassLoader。

主要优点有:核心代码在被加密的jar中,所以破解者无法解压出class文件,如果加密秘钥被破解者拿到,那将是另外一层面的安全问题了。      该技术也可以有效防止加壳技术,代码是动态加载上来的,破解者的壳程序无法加入到已加密的jar包中,及时破解者注入壳程序入口,壳程序因为不在ClassLoader 的jar包中, www.lieqibiji.com/ www.myqunliphoto.com/                www.senta7.net 所以也无法被执行起来,除非破解者替换ClassLoader的jar包,关掉NDK解密代码.但这种安装到手机上,已经不在是我们的应用,用户一定会将其卸载掉。      所以综合起来比较,第四种动态加载技术是最安全的,但效率问题,本人并没做严格测试,粗略实验了一下,效率并没有明显降低。   www.ycyc66.cn/     云彩娱乐 www.yunfeizao.cn   菲云国际趣胜娱乐   包加密加密解密文件//}// 获取密

    需要转化的jar文件(绝对路径)      例如:12然后再用加密工具将生成jar文件进行加密处理最后通过代码动态加载:}}}1234567891011121314151617181920212223主要优点有:核心代码在被加密的jar中,所以破解者无法解压出class文件,如果加密秘钥被破解者拿到,那将是另外一层面的安全问题了。      该技术也可以有效防止加壳技术,代码是动态加载上来的,破解者的壳程序无法加入到已加密的jar包中,及时破解者注入壳程序入口,壳程序因为不在ClassLoader 的jar包中, www.lieqibiji.com/ www.myqunliphoto.com/                www.senta7.net 所以也无法被执行起来,除非破解者替换ClassLoader的jar包,关掉NDK解密代码.但这种安装到手机上,已经不在是我们的应用,用户一定会将其卸载掉。      所以综合起来比较,第四种动态加载技术是最安全的,但效率问题,本人并没做严格测试,粗略实验了一下,效率并没有明显降低。   www.ycyc66.cn/     云彩娱乐 www.yunfeizao.cn   菲云国际趣胜娱乐   包加密加密解密文件//}// 获取密24252627282930313233343536373839处理完成,如果在Application中做特别处理也是可行的。之前就有人分析了爱加密的加密方式,不过这里不做阐述,有兴趣可以一起讨论。

Android apk如何加固防止被破解(防止逆向编译)

标签:ndk   综合   国际   class   手机   转化   如何   java   加密   

原文地址:http://www.cnblogs.com/0371sq/p/6422205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!