Proguard 不会混淆 android 中的 strings.xml

Posted

技术标签:

【中文标题】Proguard 不会混淆 android 中的 strings.xml【英文标题】:Proguard is not obfuscating strings.xml in android 【发布时间】:2019-09-28 05:36:08 【问题描述】:

我在我的项目中使用 proguard。它混淆了所有的 java 代码。但它不会混淆 strings.xml 中的任何内容。

我在 strings.xml 中有一些敏感信息。

如何让 proguard 混淆 strings.xml 中的内容? 我需要写任何具体的规则吗?

【问题讨论】:

您需要使用 DexGuard,因为字符串混淆/加密不是 ProGuard 功能。 ProGuard 不会混淆 string.xml 文件 @Basi,我的 apk 包含 res 文件夹,但其中不包含 values(以及 strings.xmlarrays.xml)。 另见***.com/questions/27548810/…。 【参考方案1】:

ProGuard 无法混淆 strings.xml。您可以使用其他软件来混淆您的文件,例如 DexGuard。您可以获取更多信息here。

【讨论】:

【参考方案2】:

它不会混淆 string.xml 文件。如果您将使用 .zip 重命名 .apk 文件并解压缩 zip 文件夹,那么您将获得所有资源。有几种方法可以在 android 中存储敏感数据。

    存储在 gradle 文件中,您可以使用 BuildConfig 访问它。 放到java类文件中。 将其放入 C/C++ 文件并使用 NDK 访问该文件 // 推荐,硬 对值进行逆向工程。 以加密格式放入string.xml文件中,随时访问 必填。

【讨论】:

.so 文件中包含的所有字符串都将在库的 [TEXT] 块中清晰可见,因此这也不是最佳解决方案。它会阻止学生窥视您的数据,但不会阻止真正的逆向工程师(又名“专业人士”) 我同意你的观点。您也可以将密钥字符串分成几部分并将它们保存在不同的地方,您可以创建一个算法来从 jni 文件中获取常量。【参考方案3】:

最好使用 NDK 来存储您的敏感数据。警卫队

【讨论】:

以上是关于Proguard 不会混淆 android 中的 strings.xml的主要内容,如果未能解决你的问题,请参考以下文章

Android Proguard - dontobfuscate 不会禁用混淆

从 Android Studio 构建替代 buildType 时,ProGuard 不会混淆

Android ProGuard - 只有混淆

Android ProGuard - 只有混淆

Android 中的 ProGuard 不起作用。(不混淆)

Proguard 声称会混淆 .apk,但不会