2013-06-13 142 views
4

是否有可能每当类反编译时显示一些垃圾代码。但是在运行同一类时它应该正常工作? 我知道这可能看起来很奇怪,真的有可能吗? 或限制从JAR反编译某些类的代码java限制某些类的反编译

回答

2

不,这是不可能的,但是您可以使用obfuscate代码,这样它的可读性就会降低。通常这是足够的解决方案。

2

您尝试反编译的类可能会被混淆。

来自维基:

模糊处理是创建混淆代码,即源或 机器代码是难以对人类理解的故意行为。

程序员可能故意混淆代码掩盖其目的 (通过隐藏的安全性)或它的逻辑,以防止篡改 ,制止逆向工程,或者作为一个难题或娱乐 挑战有人读取的源代码。

有关详细信息阅读:http://en.wikipedia.org/wiki/Obfuscation_(software)

有可用来混淆你的代码的工具,这里是他们夫妇:

http://www.yworks.com/en/products_yguard_about.htm

http://proguard.sourceforge.net/

+1

如果您引用某些内容,如果您还可以添加指向源的链接,那么该内容非常好。否则,人们可能会认为这是你自己的话。在这种情况下,你是从维基百科引用,所以请添加一个链接。 – maba

+0

@maba我引用它给人的印象是它从某个地方被挑选​​出来。无论如何,我接受你的建议,我已经编辑了相应的职位。谢谢! –

1

这是可能的度。不是真正的垃圾字符,但代码相当难以分解。你在找什么叫做“Java字节码混淆器”。有一些商业和非商业的。但是,在一天结束时,如果JVM可以读取并正确运行代码,则可以对其进行反编译。

请注意,字节码混淆可能会影响JVM的各种优化。

+0

哦,他想知道代码混淆...没有明白。 – AlvinArulselvan

+0

@AlvinArulselvan:字节码,但不是来源。 –

+0

https://www.owasp.org/index.php/Bytecode_obfuscation是一个很好的资源来阅读 – AlvinArulselvan