1

有时我们需要在代码中存储一些我们想要保护的字符串,例如 Google Play 中的 App Id、第三方 API 密钥、用于创建哈希的秘密种子等。

为了保护这个字符串,开发人员有时会使用 XOR 操作或其他技术来混淆它们(即:在 java 中对两个字符串进行 XOR 操作)。

如果我们在发布代码之前运行 Proguard,因为它对代码执行了相当复杂的优化,我猜它可以解析最终的字符串,最终在发布的 apk 中发送未混淆的字符串......这是真的吗?

这会很有趣,而不是混淆代码 Proguard 会去混淆手动混淆的数据......

你们是如何瞄准这个目标的?您是否排除了 proguard.cfg 中带有混淆字符串的类?

4

1 回答 1

2

我已经使用 Base64 或 XOR 等简单技术对字符串进行了模糊处理。根据我的经验,即使启用了优化,Proguard 也无法对手动混淆的数据进行去混淆处理。

在使用APKtoolDex2jar等工具启用 Proguard 导出项目后,您可以尝试反编译您自己的源代码。然后您应该查看字符串是否被去混淆。

于 2013-07-30T14:22:50.517 回答