java反编译器
您好,我对这一切都不太熟悉,但我想知道:正如您所知,java有许多反编译器可以将.class文件反编译为.java文件。我真想知道反编译器背后的逻辑是什么?我知道当我们编译java代码时,首先它被转换成字节码,然后是机器码。我认为反编译器将字节码转换为java代码。实际上,我想知道反编译器是逆向工程的一部分,还是只是一个简单的解密?如果是,如何做?感谢您的回答。反编译器非常适合使用您没有源代码的库。Eclipse有一个很好的插件可以自动执行此操作。编译java代码时,它会转换为字节码。它不会转换为机器代码 当您阅读足够多的java字节码时,您可以很容易地猜出源代码可能是什么样子。有些部分无法重建,但许多部分可以重建 例如(使用伪java字节码) 将大致转化为java反编译器,java,decompiler,Java,Decompiler,您好,我对这一切都不太熟悉,但我想知道:正如您所知,java有许多反编译器可以将.class文件反编译为.java文件。我真想知道反编译器背后的逻辑是什么?我知道当我们编译java代码时,首先它被转换成字节码,然后是机器码。我认为反编译器将字节码转换为java代码。实际上,我想知道反编译器是逆向工程的一部分,还是只是一个简单的解密?如果是,如何做?感谢您的回答。反编译器非常适合使用您没有源代码的库。Eclipse有一个很好的插件可以自动执行此操作。编译java代码时,它会转换为字节码。它不会转换
int (the fourth local "something") = 5 + 10;
反编译器尝试将字节码中的模式与java源代码中可能的结构相匹配,从而生成相同的字节码。有时,反向映射非常困难,但使用Java则非常容易
不用说,一些信息在编译过程中丢失了。正确的操作并不总是需要局部变量名(因此它们可能会被丢弃)。评论通常也不存在。通常不需要参数名。反向程序仅在功能上与原始程序相似
逆向工程是一个应用松散的术语,它不仅仅包括反编译。反编译被认为是复制,而一些反向工程技术不被认为是复制。洁净室逆向工程包括
如您所见,使用此技术不会复制原始源。事实上,为了确保不能声称直接复制,通常步骤3中涉及的人与步骤1和步骤2中涉及的人不同。对不起,这不是答案:)
int (the fourth local "something") = 5 + 10;