Android资源保护

我们参考Proguard Obfuscator的方式,对APK中资源文件名使用简短无意义名称进行替换,给破解者制造困难,以做到资源的相对安全。我们可以通过修改AAPT在生成resources.arsc和*.ap_时把资源文件的名称替换掉,从而保护资源。

AAPT编译资源的代码,我们发现修改AAPT在处理资源文件相关的源码是能够做到资源文件名的替换。

在ResourcesTable和Assets中添加资源文件时,对资源文件名称进行修改,这就能够做到资源文件名称的替换,这样通过修改过的AAPT编译资源并进行打包,我们再用apktool这个工具进行反编译。我们来看一下反编译后的截图:

Android资源保护_第1张图片

在res目录下的layout、drawable、anim、menu等文件夹不见了,因为apktool工具把它们放在了unknown文件夹下。

Android资源保护_第2张图片

你会发现资源文件名已经被简短无意义名称代替了,这样会给反编译者理解上制造困难,反编译者需要消耗一定的时间来搞清楚这些文件的作用,资源混淆带来的另一个好处是能明显减小APK的大小,资源混淆既能保护资源文件的安全又能减小安装包的大小。

这样通过修改AAPT,我们可以在代码零修改的基础上就能做到相对的资源安全,但是我们要时刻铭记,安全是相对的,没有绝对的安全。

你可能感兴趣的:(Android资源保护)