2013-07-30 46 views
0

有时我们需要在代码中存储一些我们想要保护的字符串,例如Google Play中的App ID,第三方API密钥,用于创建散列表的秘密种子等。在优化代码时,Proguard能否消除混淆字符串?

要保护此字符串有时候开发者用XOR操作或其他技术来混淆它们(即:XOR operation with two strings in java)。

如果我们在发布代码之前运行Proguard,因为它执行了相当复杂的代码优化,我猜它可以解析最终的String,最后在发布的apk中发送String un-obfuscated。这是真的?

这将是有趣的,而不是混淆代码Proguard的将取消手动模糊混淆的数据...

你怎么人的目标呢?你在proguard.cfg中排除了带有模糊字符串的类吗?

+0

无论你对代码中的字符串做什么,它最终都不会在内存中被转换为纯文本并发送给明文中任何需要它的函数?检查应用程序内存的任何人都可以查看此内容。只是一个想法。 – Gray

回答

1

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

您可以尝试在使用诸如APKtool,Dex2jar等工具启用Proguard导出项目之后反编译自己的源代码。然后,您应该看看该字符串是否已解除混淆。