有人说Android程序用Java代码写的,再怎么弄都是不安全的,很容易破解的,现在晚上关于应用加固的技术也很多了,当然这些也可以用于商业发展的,梆梆加密和爱加密就是很好的例子,当然这两家加固的Apk也是被很多geeker拿来练手和研究的主要对象,没有绝对的安全,只有相对的攻防。那么今天就来介绍一下关于Android中的加壳原理,当然这些技术是指大体上的原理介绍,和那些商业加固差距还是很大的,性能优化和加密难度上都是有差别的,开始今天的主题吧:
之前介绍了一篇关于Android中Apk加固的原理介绍的文章:
http://blog.csdn.net/jiangwei0910410003/article/details/48415225
这篇文章主要介绍了如何对dex加密来实现加固,这里就不做太多的介绍了,下面我们来看一下如何对native层进行加密,从而增加破解难度。我们在使用native层的时候,我们都知道一般是和Java层调用native层函数,那么我们就需要对native层函数进行加密,把重要的功能实现存放到native层,加大破解难度,那么我们来看一下如何对so中的函数进行加密?
这里有两种方案:
1、我们知道so文件中有很多section,我们可以将我们的目标函数存到指定的section中,然后对section进行加密即可。