有人说Android程序用Java代码写的,再怎么弄都是不安全的,很容易破解的,如今晚上关于应用加固的技术也不少了,固然这些也能够用于商业发展的,梆梆加密和爱加密就是很好的例子,固然这两家加固的Apk也是被不少geeker拿来练手和研究的主要对象,没有绝对的安全,只有相对的攻防。那么今天就来介绍一下关于Android中的加壳原理,固然这些技术是指大致上的原理介绍,和那些商业加固差距仍是很大的,性能优化和加密难度上都是有差异的,开始今天的主题吧:安全
以前介绍了一篇关于Android中Apk加固的原理介绍的文章:性能优化
http://blog.csdn.net/jiangwei0910410003/article/details/48415225微信
这篇文章主要介绍了如何对dex加密来实现加固,这里就不作太多的介绍了,下面咱们来看一下如何对native层进行加密,从而增长破解难度。咱们在使用native层的时候,咱们都知道通常是和Java层调用native层函数,那么咱们就须要对native层函数进行加密,把重要的功能实现存放到native层,加大破解难度,那么咱们来看一下如何对so中的函数进行加密?函数
这里有两种方案:性能
一、咱们知道so文件中有不少section,咱们能够将咱们的目标函数存到指定的section中,而后对section进行加密便可。学习
关于这里的实现,参见这篇文章:优化
http://blog.csdn.net/jiangwei0910410003/article/details/49962173
加密
二、直接对目标函数进行加密spa
关于这里的实现,参见这篇文章:.net
http://blog.csdn.net/jiangwei0910410003/article/details/49966719
这两篇文章都详细介绍了具体的实现方案和原理,这里就不作太多的介绍了,后续我将开始介绍破解的相关知识,那时候咱们会发现,咱们作的这些加固其实并无什么卵用,因此在研究逆向的时候,弄很差会变疯的,由于在你研究完了加固以后,还要去破解它,没有绝对的安全,只有相对的攻防。惟一的收获是在这个过程当中学习到更多。其余下期的破解文章吧~~
PS: 关注微信,最新Android技术实时推送