gpt4 book ai didi

java - 使用 Krakatau 将 Java 字节码重新组装到 .class 文件时出错

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

我正在尝试使用 Krakatau 来组装通过 javap -c 获取的 native Java 字节码,但我收到了一个奇怪的错误:

> python Krakatau/assemble.py Main.bc
Krakatau Copyright (C) 2012-17 Robert Grosse
This program is provided as open source under the GNU General Public License.
See LICENSE.TXT for more details.

Processing file Main.bc, 1/1 remaining
Main.bc:1:1: error: Expected '.class' or '.version'.
Compiled from "Main.java"

我已经检查了项目 GitHub 存储库上的所有内容,但似乎没有任何帮助。当我使用汇编器时,它如何期待 .class 文件?我的字节码应该采用某种形式的 Jasmin 语法吗?

最佳答案

javap 的输出无法重新组装。它旨在帮助 Java 程序员调试他们的代码,但并不完整或机器可读。

Krakatau 使用基于 Jasmin 语法的汇编格式。 Krakatau 包含汇编器和反汇编器,因此您可以使用 Krakatau 反汇编器将类文件反汇编为文本汇编文件,然后将其重新汇编为类文件。

顺便说一句,javap 缺少很多功能,并且在输出中隐藏了一些内容。它对于快速检查很有用,但如果您确实想在较低级别查看类文件中的内容,则无论如何都需要使用 Krakatau。

关于java - 使用 Krakatau 将 Java 字节码重新组装到 .class 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47234101/

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