android - Proguard 在优化代码时是否会去混淆字符串?

标签 android security obfuscation proguard deobfuscation

有时我们需要在代码中存储一些我们想要保护的字符串,例如 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/

相关文章:

javascript - 使用 Firebase 的 push()/childByAutoID 生成的名称的唯一性保证是什么?

java - 混淆包含注释的类

Silverlight 和混淆

android - 为不同的线程创建数据库的构造函数

c# - 为自动化存储密码的最佳实践

android - 有没有办法避免模拟器重新启动以进行应用程序测试?

java - 生成 AES 和 HMAC key 需要太多时间

javascript - 通过javascript混淆来混淆css文件

java - 在Android中录制.wav文件

android - 在运行时将项目添加到 ListPreference