【发布时间】:2013-01-29 09:40:38
【问题描述】:
我正在做一个兵棋推演,我需要分析一个 java 应用程序。因此,应用程序加载了一个损坏的类文件,将其转换为字节数组,对其进行处理,然后使用该数组正确加载类。我需要分析这个类,所以我想将它保存为一个单独的类文件,以便以后使用 jd-gui 对其进行反编译。我使用以下代码保存数组:
FileOutputStream output = new FileOutputStream(new File("class.class"));
output.write(arrayOfByte);
但是该类之后不会被反编译。我还需要做什么才能使其被反编译器读取?
更新:
我所说的损坏的意思是类文件实际上是不完整的,应用程序完成了类并使其成为内部有效的类文件,然后加载它。程序员这样做是为了防止类被反编译和读取。这个问题并不真正需要,但我认为如果我澄清一下会更好。
【问题讨论】:
-
如果它是一个损坏的类文件,你希望它如何被反编译?你的问题不是很清楚...
-
您能否提供更多信息,例如: * 为什么类没有被反编译。来自 jd-gui 的任何错误消息? * 你如何修改class文件让上面代码之前的代码从加载开始(加载损坏的类)
标签: java class bytearray reverse-engineering decompiling