【问题标题】:How to obfuscate a class which is referenced in Manifest file using Dexguard?如何使用 Dexguard 混淆清单文件中引用的类?
【发布时间】:2017-05-13 19:14:37
【问题描述】:

我在我的应用程序中使用 Dexguard,我想混淆一个扩展 Activity 类的类,我知道这很难,因为它在 Manifest 文件中被引用。 我的问题是:有什么方法可以混淆在 Manifest 文件中引用的类?

【问题讨论】:

  • 为什么不能混淆它?你可以像任何其他类一样混淆它。您唯一不能做的就是更改类名或包名,只要它们保持不变,您就不会有任何问题。
  • 其实我可以看到,Manifest 文件中引用的所有类都没有被完全混淆,虽然对我来说没问题,但我还是需要更改类名和包名。跨度>
  • @XaverKapeller 有什么方法可以做到吗?
  • 1) 你不能。 2)那会改善什么?真的没有任何意义。恕我直言,一般来说混淆是没有意义的......
  • @XaverKapeller 披露类名或包名将指示实现和应用程序行为。这就是我想隐藏它们的原因。

标签: android android-activity proguard android-security dexguard


【解决方案1】:

DexGuard 会尽可能混淆类、字段、方法、资源、资源文件、资产文件和本机库的名称,并调整它们在代码、清单和其他资源中的出现。更具体地说,DexGuard 确实混淆了活动类的名称并相应地更新清单。但是,它不会混淆导出的活动的名称,无论是显式(exported="true")还是隐式(使用意图过滤器)。 Android 运行时将这些名称视为公共 API,例如对其他应用可见,因此需要保留它们。

【讨论】:

  • 我尝试使用 -applymapping 功能.. 但在可能的映射文件中,我遇到错误“ProguardTokenType.CRLF、ProguardTokenType.FLAG_NAME、ProguardTokenType.LINE_CMT 或 ProguardTokenType.WS 预期,得到 'c'”我的映射文件只有一行:“com.android.appname.TermsAndPrivacyActivity -> com.android.dex.f:”
【解决方案2】:

您可以使用此工具混淆 Manifest 文件中引用的类:Bg+ Anti Decompiler (JAVA) 免费使用。

【讨论】:

    【解决方案3】:

    如果在清单中具有意图过滤器并导出为 true,则 Dexguard 不会混淆活动类。如果你想混淆类,请让你的类导出为 false。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 2019-05-22
      • 2015-06-14
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多