资源安全这个话题目前大家的关注度不是非常的高,相比较而言大家更加关注代码安全,目前市面上各类APP基本上都使用了ProGuard来保护代码安全。但是对资源文件的保护力度都不大,其实资源文件存在比较大的安全隐患。
我们可以看到应用的资源文件大概有:anim、drawable、layout、menu、values等等,我们可以通过修改这些文件夹下的资源文件,并通过apktool进行回编译(apktool b命令)就能创建一个经过修改的APK应用,例如我们修改一个layout文件,就能往我们原有APK中添加一些我们自己的东西。
这个问题主要是我们在开发过程中倡导的命名的规范性,一般都要求在命名时做到见名知意,这样能够方便我们自己的理解和维护,但是同时也方便了破解者,破解者可以轻松的根据文件名来猜测这个文件的意图和作用,从而做破坏性的修改。
通过这个例子我们可以看出目前资源安全的重要性。安全是相对的,没有绝对的安全,我们接下来讨论的是类似Proguard方式对我们资源进行保护。我们主要通过AAPT工具来对资源进行保护。