我正在做一個wargame,我需要分析一個java應用程序。因此,該應用程序會加載損壞的類文件,將其轉換爲字節數組,並對其執行任何操作,然後使用該數組正確加載類。我需要分析這個類,所以我想將它保存爲一個單獨的類文件,以便稍後使用jd-gui對其進行反編譯。我使用下面的代碼來保存數組:如何在java中將字節數組作爲類文件保存並稍後進行反編譯?
FileOutputStream output = new FileOutputStream(new File("class.class"));
output.write(arrayOfByte);
但是這個類以後沒有被反編譯。我還需要做些什麼來使反編譯器可讀?
UPDATE:
我的意思是通過什麼損壞,是該類文件實際上是不完整的,應用程序完成了類,並使其內部有效的類文件,然後加載它。程序員已經這樣做了,以防止類被反編譯和閱讀。這個問題並不是真的需要,但我認爲如果我澄清會更好。
如果它是一個損壞的類文件,你會如何期望它被反編譯?你的問題不是很清楚...... – 2013-02-13 18:26:35
你能否提供更多的信息如: *爲什麼這個類沒有反編譯。來自jd-gui的任何錯誤消息? *你如何修改類文件,使代碼在加載之前從上面的代碼開始(加載已損壞的類) – 2013-02-13 18:42:27