[英]How to save an array of byte as a class file in java and decompile it later?
我正在做一个战争游戏,我需要分析一个Java应用程序。 因此,该应用程序加载了损坏的类文件,将其转换为字节数组,对其进行处理,然后使用该数组正确加载类。 我需要分析该类,因此我想将其另存为单独的类文件,以便稍后使用jd-gui对其进行反编译。 我使用以下代码保存数组:
FileOutputStream output = new FileOutputStream(new File("class.class"));
output.write(arrayOfByte);
但是此后该类不会反编译。 为了使反编译器可读,我还需要做什么?
更新:
我所说的损坏是指类文件实际上是不完整的,应用程序完成了该类并使其成为有效的类文件,然后将其加载。 程序员这样做是为了防止对该类进行反编译和读取。 这个问题确实不是必需的,但我认为如果我澄清一下会更好。
确保将正确的类Java字节代码写入示例路径
假设类的完全限定名称(包括类名称)为com.test.Sample,则应在文件夹com \\ test \\ Sample.class下编写类字节码。
此外,您还要确保在写入字节码后正确关闭FileOutputStream。
// use fully qualified class name
FileOutputStream output = new FileOutputStream(new File("c:\\com\\test\\Sample.class"));
output.write(arrayOfByte);
output.close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.