重新混淆混淆代码是错误的吗?

时间:2011-12-18 02:33:00

标签: java obfuscation

我过去使用过java混淆器,有些很容易进行逆向工程。我想也许它没有被混淆。

应用两阶段混淆是错误还是有问题?

  1. 使用ProGuard
  2. 进行模糊处理
  3. 使用商业产品Zelix Klassmaster
  4. 完成

    -

    或者这是一个糟糕的方法?应该只使用一个混淆器吗?

2 个答案:

答案 0 :(得分:4)

只要代码仍能正常运行,那么无论你使用什么数量的混淆器,都应该没问题。请记住,使用混淆器的主要问题是尽可能使代码不可读,同时保持其正确性。

答案 1 :(得分:2)

重新模糊混淆代码是一种众所周知的代码模糊方法。 例如您可以将类混淆为具有不构成有效Windows文件名的名称,如

class COM1 { ... }

反编译将导致名为COM1.java的文件,该文件不是有效的Windows文件名,从而破坏了许多反编译器。

解决方案是首先使用class1,class2,method1,method2,field1,field2等名称字典进行重新混淆,然后进行反编译。现在反编译的代码不仅更有效,而且更具可读性。

串行使用混淆器通常会导致混淆代码与上次使用的混淆器一样强。 (即链条与最后一个链条一样强)

我建议你坚持使用一个混淆器,但要确保你理解混淆过程中的每个选项以及撤消它是多么容易。