我过去使用过java混淆器,有些很容易进行逆向工程。我想也许它没有被混淆。
应用两阶段混淆是错误还是有问题?
-
或者这是一个糟糕的方法?应该只使用一个混淆器吗?
答案 0 :(得分:4)
只要代码仍能正常运行,那么无论你使用什么数量的混淆器,都应该没问题。请记住,使用混淆器的主要问题是尽可能使代码不可读,同时保持其正确性。
答案 1 :(得分:2)
重新模糊混淆代码是一种众所周知的代码模糊方法。 例如您可以将类混淆为具有不构成有效Windows文件名的名称,如
class COM1 { ... }
反编译将导致名为COM1.java的文件,该文件不是有效的Windows文件名,从而破坏了许多反编译器。
解决方案是首先使用class1,class2,method1,method2,field1,field2等名称字典进行重新混淆,然后进行反编译。现在反编译的代码不仅更有效,而且更具可读性。
串行使用混淆器通常会导致混淆代码与上次使用的混淆器一样强。 (即链条与最后一个链条一样强)
我建议你坚持使用一个混淆器,但要确保你理解混淆过程中的每个选项以及撤消它是多么容易。