android apk 防止反编译技术加壳技术(转)
一、加壳技术原理 所谓 apk 的加壳技术和 pc exe 的加壳原理一样,就是在程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译,在程序运行的时候优先取得程序的控制权做一些我们自己想做的工作。 PC exe 的加壳原理如下: 二、 android apk 加壳实现 要想实现加壳需要解决的技术点如下: ( 1 )怎么第一时间执行我们的加壳程序 ? 首先根据上面的原理我们在 apk 中要想优先取得程序的控制权作为 android apk 的开发人员都知道 Application 会被系统第一时间调用而我们的程序也会放在这里执行。 ( 2 )怎么将我们的加壳程序和原有的 android apk 文件合并到一起 ? 我们知道 android apk 最终会打包生成 dex 文件,我们可以将我们的程序生成 dex 文件后,将我们要进行加壳的 apk 和我们 dex 文件合并成一个文件,然后修改 dex 文件头中的 checksum 、 signature 和 file_size 的信息,并且要附加加壳的 apk 的长度信息在 dex 文件中,以便我们进行解壳保证原来 apk 的正常运行。加完壳后整个文件的结构如下: ( 3 )怎么将原来的 apk 正常的运行起来 ? 按照( 2 )中的合并方式在当我们的程序首先运行起来后,逆向读取 dex 文件获取原来的 apk 文件通过