我正在做一个兵棋推演,我需要分析一个 java 应用程序。因此,应用程序加载了一个损坏的类文件,将其转换为字节数组,对其进行处理,然后使用该数组正确加载类。我需要分析这个类,所以我想将它保存为一个单独的类文件,以便以后使用 jd-gui 对其进行反编译。我使用以下代码保存数组:
FileOutputStream output = new FileOutputStream(new File("class.class"));
output.write(arrayOfByte);
但是该类之后不会被反编译。我还需要做什么才能使其被反编译器读取?
更新:
我所说的损坏的意思是类文件实际上是不完整的,应用程序完成了类并使其成为内部有效的类文件,然后加载它。程序员这样做是为了防止类被反编译和读取。这个问题并不真正需要,但我认为如果我澄清一下会更好。