我遇到过许多Java混淆器,它们只是重命名类名,可以通过在线java反编译器查看。但我想要一个混淆器,它可以生成无法使用任何工具反编译的输出。 (我们可以用这种方式模糊.net项目。)
请建议我这样的java混淆器?
答案 0 :(得分:2)
搜索“流混淆”。
始终可以进行反编译。但是,许多反编译器都希望字节码由javac等常规编译器生成,并且无法从流混淆类中恢复可编译的Java源代码。结果往往是如此破碎,以至于人类很难识别原始(Java高级)控制流程。这造成了额外的障碍,只能通过在字节码分析中投入更多时间来克服这一障碍。
但请注意,这是一场竞赛:反编译器在这方面也变得更好。因此,您应该始终针对可以获得延迟的所有反编译器测试混淆的结果。
我们在一个项目中使用了一个名为“allatori”的混淆器(连同第二个主要基于名称的混淆器),结果非常令人满意。
答案 1 :(得分:1)
正如Stefan所说,流混淆是一种混淆旧反编译器的简单方法。对于现代反编译器,您将不得不付出更多努力。以下是您可以搜索的一些功能:
一切都是可逆的,但它会使它变得更加痛苦。