看板 java 關於我們 聯絡資訊
大家好,最近在研究 Java 的 Byte code 想請問大家 有沒有推薦的工具,幾個需求列在底下。 首先我自己有在用的是 Java ByteCode Editor (JBE) 他確實很好用 但有遇到一個問題是: 有時候修改 Method 後,會無法儲存回去。 這個狀況應該是 JBE 自己的問題,因為我甚至完全沒動過 bytecode 直接 Save Method 也會出錯 還有一個工具是 reJ,感覺 reJ 也算是蠻好用的,只是他無法在 Constant Pool 裡面增加 FieldRef 我的需求主要就是希望可以方便的增加 Class , Field , Method Refrence, 如:編輯或新增 (其實這個 JBE 做得到,但卡在偶爾我要改 Method 會掛) 還有修改 Method 的 bytecode 不會出問題(沒打錯語法的情況下) 是在想有沒有類似 Android Smali 這種 decompile 工具,可以把 .class 檔案 先 Decompile 成文字文件,提供自己修改,改完之後會再編譯回去的那種。 (也就是工具應該會自己去找出有哪些 string、 member reference ... 等等) 不然我現在都要用 JBE 新增 ref 之後再透過 HexEditor 去硬幹感覺有點累 感謝大家~ PS : 其實我是玩 Minecraft 想把一個 Mod 的 Recipe 改掉阿 XD 原本的合成成本太高了... ---- 自問自答一下,n3oanderson 大推的應該主要是 Lib , 這個我有看過 不過最近沒時間研究,所以想找現成的XD 更正: n3o大推的 ASM 有工具可以將 class 轉成 ASM 的 Generator (感謝 sbrhsieh 大指正) 也就是透過 ASMifier 可以把 class 檔案轉成可以透過 ASM Lib 製作 class file 的 java code 因此也可以修改完後可直接透過 java 編譯執行生成 class file 找到比較 OK 的有: Assembler : jasmin http://jasmin.sourceforge.net/ Disassembler : ClassFileAnalyzer http://classfileanalyzer.javaseiten.de/ 雖然有找到不少可以把 class 反組譯成 for jsamin 的格式,不過似乎 ClassFileAnalyzer 使用起來比較穩定的 "感覺" (或者是錯覺XD) 所以就使用這兩個啦~ 謝謝大家 :D -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.108.224 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1422853824.A.A86.html
n3oanderson: http://asm.ow2.org/ 02/02 17:05
sbrhsieh: objectweb ASM 會比 jasmine 來得適合 02/03 00:06
sbrhsieh: ASM 內的 org.objectweb.asm.util.ASMifier 可用來產出 02/03 00:23
sbrhsieh: 任一個 .class 的 generator(java program).你可以修改 02/03 00:24
sbrhsieh: generator 的程式碼, compile->run 產出修改後的 class 02/03 00:24
sbrhsieh: bytecode(.class file)。 02/03 00:25
sbrhsieh: ASMifier class 是 application(有 main method)。 02/03 00:28
darkk6: 喔喔 了解,我再試試看 謝謝囉 02/03 07:50
※ 編輯: darkk6 (223.139.18.35), 02/03/2015 11:51:25