有时我们需要在代码中存储一些我们想要保护的字符串,例如 Google Play 中的 App Id、第三方 API key 、用于创建哈希的 secret 种子等。
为了保护此字符串,有时开发人员会使用 XOR 运算或其他技术对其进行混淆(即: XOR operation with two strings in java )。
如果我们在发布代码之前运行 Proguard,因为它对代码执行了相当复杂的优化,我猜它可以解析最终的字符串,最终在发布的 apk 中发送未混淆的字符串......是这样的吗真的吗?
这很有趣,Proguard 不会对代码进行混淆,而是对手动混淆的数据进行反混淆......
你们如何瞄准这个目标?您是否排除了 proguard.cfg 中带有混淆字符串的类?
最佳答案
我尝试过使用 Base64 或 XOR 等简单技术进行字符串混淆。根据我的经验,即使启用了优化,Proguard 也无法对手动混淆的数据进行反混淆。
在启用 Proguard 的情况下导出项目后,您可以尝试使用 APKtool 等工具反编译您自己的源代码, Dex2jar等等。然后你应该看看字符串是否被反混淆了。
关于android - Proguard 在优化代码时是否会去混淆字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17949419/