1

我在交付之前对我的 Java 代码进行了混淆(目前使用 ProGuard)。

当我“反编译”混淆的字节码时,显然所有字符串都没有被混淆。对于异常中的消息也是如此。这些异常消息为读者提供了大量信息来理解代码。喜欢:

if(a == null){
  throw new IllegalArgumentException("SuperSecretObject cannot be null");
}

是否可以在删除所有异常消息字符串的同时使用 ProGuard 或其他工具进行编译?

否则,您能否推荐其他方法来隐藏功能上不需要的字符串?

4

1 回答 1

1

例如你可以使用

throw new IllegalArgumentException(SuperSecretObject.class.getName() + " cannot be null");

然后混淆器也可以用混淆的类名替换类名。

于 2013-03-25T09:47:23.600 回答