gpt4 book ai didi

Java反编译->重新编译的过程,安全吗?

转载 作者:行者123 更新时间:2023-12-02 10:57:57 24 4
gpt4 key购买 nike

我知道,如果我获取一些源代码,对其进行编译和反编译,则原始源代码和最终源代码并不相同,因为可能以不同的方式表达相同的内容(例如 whilefor 循环)。换句话说,这个过程在某种程度上是多对一的,这意味着它是不可逆的

我的问题是在另一个方向。如果我获取字节码,反编译它,然后使用最初使用的完全相同的编译器重新编译它,原始字节码和最终字节码是否逐字节相同(忽略时间戳和非执行元数据)?如果逐字节不相等,那么它至少在逻辑上是等效的,或者该过程可能会引入逻辑错误?

我没有工具,但我可以回答我自己的第一个问题(逐字节相等),但不能回答第二个问题(逻辑等价),因此我在这里询问人们的经验。

最佳答案

我觉得反编译器无法输出 100% 准确的可重新编译代码,原因如下:

  • 编译(例如反编译)并非设计为双射操作。
  • 反编译器无法猜测使用了哪个编译器以及使用了哪些选项来生成 .class 文件。
  • 反编译不必像 JSR 中那样遵守契约(Contract)或规范,并且不能保证它将给出有效、可重复或经过认证的结果。

关于Java反编译->重新编译的过程,安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31749437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com