每当一个类被反编译时是否有可能显示一些垃圾代码。但是在运行同一个类时它应该可以正常工作吗?我知道这可能看起来很奇怪,真的有可能吗?或限制 JAR 中某些类的反编译
问问题
339 次
3 回答
2
不,这是不可能的,但是您可以obfuscate
编写代码,这样它的可读性就会降低。通常它是足够的解决方案。
于 2013-06-13T06:49:13.807 回答
2
您尝试反编译的类可能会被混淆。
来自维基:
混淆是故意创建混淆代码的行为,即人类难以理解的源代码或机器代码。
程序员可能故意混淆代码以隐藏其目的(通过晦涩的安全性)或其逻辑,以防止篡改,阻止逆向工程,或者作为阅读源代码的人的难题或娱乐挑战。
有关更多详细信息,请阅读:http://en.wikipedia.org/wiki/Obfuscation_(software)
有一些工具可以用来混淆你的代码,这里有几个:
于 2013-06-13T06:49:27.463 回答
1
一定程度上是可以的。不是真正的垃圾字符,而是相当难以破译的代码。您正在寻找的东西称为“Java 字节码混淆器”。有很多,商业和非商业的。但是,归根结底,如果 JVM 可以读取并正确运行您的代码,则可以对其进行反编译。
请注意,字节码混淆可能会妨碍 JVM 的各种优化。
于 2013-06-13T06:49:46.870 回答