【发布时间】:2012-10-26 02:04:45
【问题描述】:
我想查看 DexGuard 的工作原理,但它似乎没有免费试用版。
DexGuard 可以加密 Android 应用程序吗?或者它只是混淆了代码? DexGuard 加密如何工作?如果您能提供在反编译前后使用 DexGuard 运行的示例应用程序的代码,那就太好了。
【问题讨论】:
标签: android encryption proguard dexguard
我想查看 DexGuard 的工作原理,但它似乎没有免费试用版。
DexGuard 可以加密 Android 应用程序吗?或者它只是混淆了代码? DexGuard 加密如何工作?如果您能提供在反编译前后使用 DexGuard 运行的示例应用程序的代码,那就太好了。
【问题讨论】:
标签: android encryption proguard dexguard
【讨论】:
旧版本的 DexGuard 使用“DES”算法加密指定的类。后来它改变了“AES”算法。 加密指定类后,将加密后的数据以数据数组的形式,以解密的方式存储到另一个类中。 Dex中作为静态块的解密方法是使用控制流混淆和API隐藏进行混淆的clinit格式方法。所以对解密方法进行去混淆处理就有点麻烦了。在其他类中,将指定的类更改引用到反射操作码。每次APK运行时,加密的类都会先用静态方法解密。解密后的类将使用反射 API 加载到 dvm 内存中。因此其他类可以正确引用指定的类。而已。在我看来,DexGuard 是一个非常强大的混淆工具。如果每个功能混淆都适用于 APK,那么你将花费大量时间来反转整个真实程序。
【讨论】:
虽然他们使用了加密这个词,但似乎真的是混淆了。我这么说只是因为尽管它们可能会加密某些字符串/值……事实上,加密密钥也必须存储在应用程序中,这意味着它们为代码提供“锁”,同时打包“密钥” " 和它。
【讨论】: