-->

如何DexGuard加密类?(How does DexGuard encrypt classes?)

2019-07-03 14:44发布

我要检查DexGuard是如何工作的,但它似乎没有一个免费试用版。

可以DexGuard加密的Android应用程序? 或者这仅仅混淆代码? 如何DexGuard加密工作? 如果你能提供从编译之前和之后与DexGuard一个示例应用程序运行代码,这将是巨大的。

Answer 1:

ProGuard的提供名称混淆:它可以通过短,无意义的名称,替换类,方法和字段的原始名称。 DexGuard另外提供字符串的加密和加密类。 术语加密可以是在这种背景下混乱,因为这些是基本上更积极的类型混淆。 指定字符串和类存储在一些有意复杂加密的形式,并在与该必然提供给应用程序密钥和算法运行时解密。 在类似的某些方面,谷歌播放市场可以为Android 4.1加密整个应用程序。 它被执行之前,以受控的方式运行时环境进行解密应用程序。

(我的ProGuard和DexGuard的开发商 - 随时取得联系,如果你有兴趣)



Answer 2:

使用“DES” ALG加密指定的类DexGuard在旧版本。 后来改成“AES” ALG。 加密指定类后,它的encrypte数据存储到经由数据阵列格式另一类与解密方法。 即静块的解密方法在地塞米松被clinit使用控制流混淆和API隐藏哪些模糊格式方法。 所以这是一个有点反混淆的解密方法。 在其他类中,参考指定的类变化到反射操作码。 在APK运行每次,加密的类将在静态方法首先解密。 和解密的类将被装载到使用反射API DVM存储器。 因此其他类可以正确地引用指定的类。 而已。 在我看来,DexGuard是非常强大的混淆工具。 如果每个功能迷惑适用于APK,它会花费你大量的时间来扭转整个真正的程序。



Answer 3:

虽然他们使用术语加密,它似乎真的很困惑。 我说,这仅仅是因为他们虽然可以加密特定字符串/值...加密密钥也必须存储在应用程序的事实意味着它们提供了一个“锁定”为代码,而在同一时间包装“键“ 用它。



文章来源: How does DexGuard encrypt classes?