[转]安卓加固之so文件加固
一、前言 最近在学习安卓加固方面的知识,看到了 jiangwei212 的博客,其中有对so文件加固的两篇文章通过节加密函数和通过hash段找到函数地址直接加密函数,感觉写的特别好,然后自己动手实践探索so加密,这里记录一下学习遇到的困难和所得吧,收获还是非常大的。 二、通过加密节的方式加密函数 1、加解密思路 加密:我们自己写一个Demo根据ELF文件格式,找到我们要加密的节,加密保存在ELF文件中 解密:这里有一个属性__attribute__((constructor)),这个属性使用的节优于main先执行,使我们解密有了可能。 2、实现流程 ①编写我们的native代码,在native中将要加密的函数置于一个节中,并将解密函数赋予__attribute__((constructor))属性 a.在函数申明后面加上 __attribute__((section(".mytext"))) ,将函数定义在我们自己的section中 b.我们需要编写一个解密函数,属性用__attribute((constructor))申明,这样就可以在在so被加载的时候,在main之前将我们的节解密。 然后使用ndk-build将native代码编译成so文件 ②编写加密程序(我这里使用VS2010) a.解析so文件,找到