[問題] 尋找 JavaByteCode 工具 [已找到]

看板java作者 (Mr. Pan)時間10年前 (2015/02/02 13:10), 10年前編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
大家好,最近在研究 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

02/02 17:05, , 1F
02/02 17:05, 1F

02/03 00:06, , 2F
objectweb ASM 會比 jasmine 來得適合
02/03 00:06, 2F

02/03 00:23, , 3F
ASM 內的 org.objectweb.asm.util.ASMifier 可用來產出
02/03 00:23, 3F

02/03 00:24, , 4F
任一個 .class 的 generator(java program).你可以修改
02/03 00:24, 4F

02/03 00:24, , 5F
generator 的程式碼, compile->run 產出修改後的 class
02/03 00:24, 5F

02/03 00:25, , 6F
bytecode(.class file)。
02/03 00:25, 6F

02/03 00:28, , 7F
ASMifier class 是 application(有 main method)。
02/03 00:28, 7F

02/03 07:50, , 8F
喔喔 了解,我再試試看 謝謝囉
02/03 07:50, 8F
※ 編輯: darkk6 (223.139.18.35), 02/03/2015 11:51:25
文章代碼(AID): #1KpmR0g6 (java)
文章代碼(AID): #1KpmR0g6 (java)