我在交付之前对我的Java代码进行了模糊处理(目前正在使用ProGuard)。
当我“反编译”混淆的字节码时,显然所有字符串都不会被混淆。对于异常中的消息也是如此。这些异常消息为读者提供了许多了解代码的信息。像:
if(a == null){
throw new IllegalArgumentException("SuperSecretObject cannot be null");
}
是否有可能在删除所有异常消息字符串时使用ProGuard或其他工具进行编译?
否则,您能否推荐其他方法来隐藏功能上不必要的字符串?
答案 0 :(得分:1)
例如,您可以使用
throw new IllegalArgumentException(SuperSecretObject.class.getName() + " cannot be null");
然后,混淆器也可以用混淆的类名替换类名。