Mar*_*ark 1 obfuscation android proguard android-lvl android-resources
我目前使用LVL和Proguard的组合作为打击盗版的第一道防线.
但是,资源字符串呢?例如,如果存在类似"许可证检查失败"的资源字符串,那么盗版者是否只需要将该资源ID追溯回代码中使用的位置?事实上,如果字符串是像"请联系开发者"这样的通用字符,也是如此.
什么是最好的方法?
Eri*_*une 11
如果您定义资源字符串,您可能会在以下位置定义或使用它:
编译后,资源字符串,其名称和整数代码最终出现在:
ProGuard将完全删除R $ string.class,但Android反编译器可以重建来自resources.arsc的所有信息.它仍然需要一些工作,但字符串可能确实暗示了代码的目的(以及某些API调用).
您可以通过加密/混淆代码中的字符串以及使用反射访问某些API来改进这一点,如Google的演示文稿Evading Pirates and Stopping Vampires中所述.
ProGuard针对Android DexGuard的闭源兄弟可以为您加密字符串(以及API调用和整个类),可能比您手动实现的更有效,并且不会增加源代码的负担.
(我是ProGuard和DexGuard的开发人员)
归档时间: |
|
查看次数: |
7287 次 |
最近记录: |