我遇到过许多Java混淆器,它们只是重命名类名,并且可以由在线java反编译器查看。但是我想要一个能够生成不能使用任何工具反编译的输出的混淆器。(我们可以用这种方式混淆.net项目)。
请给我推荐这样的java混淆器?
发布于 2016-03-24 01:10:58
搜索"flow obfuscation“。
反编译总是可能的。然而,许多反编译器期望字节码由常规编译器(如javac )生成,并且很难从流混淆的类中恢复可编译的Java源代码。结果经常被破坏,以至于人类很难识别原始的(Java高级)控制流。这造成了一个额外的障碍,只有在字节码分析上投入更多的时间才能克服这个障碍。
然而,请注意,这是一场竞赛:反编译器在这方面也变得更好。因此,你应该总是针对所有的反编译器测试混淆后的结果,你可能会得到延迟。
我们已经在一个项目中使用了一个名为"allatori“的混淆器(以及第二个主要基于名称的混淆器),并取得了令人满意的结果。
发布于 2016-03-29 06:45:05
正如Stefan提到的,流混淆是一种简单的处理老旧反编译器的方法。对于现代的反编译器来说,你必须投入更多的精力。以下是您可以搜索的一些功能:
加密合成修饰符(JD- members)
一切都是可逆的,但这会让它变得更痛苦。
https://stackoverflow.com/questions/36183608
复制相似问题