Dexguard的混淆导致某些Android设备上的行为异常

时间:2019-03-18 10:53:07

标签: java android obfuscation dexguard

我正在使用dexguard 6.0.26对Android库进行模糊处理。在配置文件中,我具有以下选项

-android
-zipalign 4
-include E:\\DexGuard6.0.26\\lib\\dexguard-assumptions.pro
-dontoptimize
-dontshrink
-dontusemixedcaseclassnames
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
-dontskipnonpubliclibraryclasses

针对我的课程,提供常规的 保持 选项。 该库已建立,使用该库的我的应用程序在许多设备上都可以正常运行,但是在某些设备上(例如asus zenpad 3s 10 z500kl,android 7.0),会发生一些奇怪的行为

  • 该库代码使用MD5哈希算法,并且在有故障的设备上,我在错误消息 java.security.NoSuchAlgorithmException:MD5 MessageDigest不可用 处出现错误, strong> MessageDigest.getInstance(“ MD5”); ,但在其他设备上,该应用正常运行。
  • 某些代码块(例如 if..else )被完全跳过/忽略,即使在反编译经过混淆的jar之后,我也可以在类文件中看到该代码块!

只需确保,如果我添加了dexguard选项 -dontobfuscate 并重新构建了jar,该应用程序现在就可以在包括华硕平板电脑在内的所有设备上正常运行,所以我可以肯定混淆在这里正在做疯狂的事情。

有人遇到过这个问题并设法解决了吗?任何帮助/提示将不胜感激。

0 个答案:

没有答案