2011-06-30 59 views
1

我正在寻找一个支持maven-plugin的java混淆器?我们尝试使用ProGuard,但遇到了一些运行时问题,如果不进行混淆处理,这些问题不会发生。有没有其他的混淆器。支持maven插件的java混淆器

回答

4

由于ProGuard的类似于大多数其他Java模糊处理(至少我熟悉的那些)的方式工作,它很可能你会遇到类似的问题。 (事实上​​,ProGuard会采用它来发射符合字节码的方法,而另外一些混淆器则传闻这种方法不那么警惕。)

你有什么样的问题?通常,使用混淆的问题与名称混淆有关 - 遇到其他库无法找到公共类/方法/字段或使用反射的问题时出现问题。这通常是可以解决的,因为要非常小心哪些类名称和方法名称可以被修改。

我用Java项目混淆最后一次,我们是相当保守的什么被混淆。我们将我们想要混淆的类放入其原始包的子包中,我们只对.internal进行混淆。。我们发现这比试图确定什么不是混淆更有用。

与模糊处理的另一个问题是他们的最优化。尽管我没有看到ProGuard中的优化问题,但这绝对不是不可能的。无论如何,我都会关闭它,原因如下:首先,当您为客户收到(混淆)的堆栈跟踪时,很难将名称取消扩展以确定发生了什么问题。如果您的混淆器已经优化了任何内容,那么堆栈跟踪可能没有意义。其次,这是不必要的:在JVM是非常,在优化字节代码非常好,这与(潜在从而使情况变得更糟。)干扰

0

几年前,我有类似的问题,比你。 如果我没记错的话ProGuard错误地优化了短私人方法: 它在内联期间确实消除了方法的“同步”按键效果。

我们固定通过使用ProGuard的-dontoptimize选择这个问题。