如何使java反编译器生成错误

时间:2014-11-05 16:11:44

标签: java decompiler

我对这个问题很好奇。

是否有一行代码或某些方法可以让我的程序在反编译时产生错误?

这不是一个大问题,因为通常它无法正确读取代码,但完全隐藏源代码会很有趣。

3 个答案:

答案 0 :(得分:2)

首先,混淆绝不是答案。无论你认为你需要混淆,你都不需要。并且它不会阻止任何知识渊博的人,并且无论如何都要对您的应用进行逆向工程。

但至于实际问题,这取决于。一些反编译器是愚蠢的,容易打破。像Krakatau一样,有些人更强大。仍然有办法阻止Krakatau反编译,但没有什么可以阻止熟练的逆向工程师长久。

您可以使用字节码和类文件格式进行许多有趣的技巧,但其中一些特定于Oracle的JVM,从而略微降低了可移植性。我写了一些裂缝,展示了我发现的一些有趣的字节码技巧(特别是thisthisthisthis)。除了Krakatau之外,其中大多数都会挫败任何工具。但这主要是学术兴趣。

答案 1 :(得分:0)

这可能是不可能的,但是,如果您希望保护自己的知识产权,可以使用ProGuard来混淆类,方法和字段名称,以使反编译代码难以理解。

答案 2 :(得分:0)

那么,根据反编译器的工作原理,您可以使用像hosemocha这样的东西。但那真的是老java。

http://mguessan.free.fr/java/securite/HoseMocha.java