2012-05-04 72 views
3

我的主要問題是,我有從遊戲中的一些類文件,其中我wan't編輯/修改其部分最簡單的方法/修改編譯後的class文件

什麼是實現這一目標的最簡單的方法?

反編譯整個代碼並重新編譯不是一個選項,除非你有一些反編譯器不會導致源代碼中的錯誤,因爲我不想花時間修復它們。

問候

+0

你使用過哪些反編譯器? – DaTroop

+0

你確定你被允許修改那個遊戲的代碼嗎?如果是這樣,可能會有源代碼發佈,而不必反編譯/重新編譯?根據你想改變的部分,你可能最終不得不反編譯大部分遊戲。 – Thomas

+0

我正在使用jd反編譯器 –

回答

7

一個解決辦法是像ASMBCEL使用字節碼操縱的。它們都提供了一個API來加載一個類文件,修改它的一部分並保存它。 ASM的優勢是能夠在運行時執行此操作。

+0

Woah - 正是我在找的東西。謝謝 :) –

1

您還可以使用我寫的Krakatau disassembler/assembler。反彙編器將類文件轉換爲人類可讀的(如果您理解字節碼,則可讀性良好)格式,然後您可以編輯和重新組合。如果您想手動查看和編輯類文件,這非常有用,在這種情況下編寫一堆庫調用,然後編譯和運行程序以使用ASM或BCEL是相當笨拙的。

Krakatau還有一個專門用於處理混淆類的反編譯器,因此即使沒有其他反編譯器可以生成有效的源代碼,也可以生成有效的源代碼。當然,如果該類被混淆了,那麼生成的源代碼可能仍然是不可讀的。

相關問題