DexGuard如何加密类?

Arc*_*rci 21 encryption android proguard dexguard

我想检查一下DexGuard是如何工作的,但它似乎没有免费试用版.

DexGuard可以加密Android应用程序吗?或者只是简单地混淆代码?DexGuard加密如何工作?如果您可以在反编译之前和之后提供使用DexGuard运行的示例应用程序的代码,那就太棒了.

Eri*_*une 57

ProGuard提供名称混淆:它可以用简短,无意义的名称替换类,方法和字段的原始名称.DexGuard还提供字符串加密和类加密.术语加密在这种情况下可能会令人困惑,因为这些基本上是更具攻击性的混淆类型.指定的字符串和类以一些有意复杂的加密形式存储,并在运行时使用应用程序必需的密钥和算法进行解密.在某些方面,Google Play市场也可以加密Android 4.1的整个应用程序.然后,运行时环境以受控方式在应用程序执行之前解密应用程序.

(我是ProGuard和DexGuard的开发者 - 如果您有兴趣可以随时联系)

  • Android和Java的虚拟机和字节码完全不同.Dalvik字节码没有预验证信息,而Java字节码可能有预先验证信息.Java虚拟机使用该信息来检查程序是否构造良好.由于应用程序的运行方式不同,Android开发人员并未认为这是必要的.因此,写出Dalvik字节码的DexGuard不需要它. (3认同)
  • 正确.是的,从外部来看,已处理的应用程序仍然看起来像任何其他应用程序; Google Play仍然可以加密它.不,您不需要组合ProGuard和DexGuard,因为DexGuard已经提供了ProGuard的功能.只有Java Micro Edition和Java 6才需要预验证,而不是Android. (2认同)