Jar包反編譯

工具1:jad

下載地址:https://varaneckas.com/jad/
比如我現在有個jar包,struts2-core-2.3.16.3.jar

當前所在目錄爲D:/mylib,在當前目錄啓動cmd,執行

jad -o -r -ff -dtest -sjava struts2-core-2.3.16.3/**/*.class
-o表示反編譯後遇到同名文件直接覆蓋(默認會詢問)
-r表示反編譯後的文件,保持原有的目錄結構
-ff表示反編譯的class文件裏字段位於方法前面(默認字段位於方法後面)
-d表示反編譯內容的輸出目錄
-s表示反編譯生成的文件的後綴
**表示匹配struts2-core-2.3.16.3目錄樹下的所有以class爲後綴的文件

不足是:裏面也有一些編譯不出來的部分,對於比較簡單的單文件沒有問題。
參考鏈接:https://blog.csdn.net/huangdengji/article/details/84834789

工具2:fernflower(推薦)

jad需要將jar解壓後,然後再反編譯;fernflower是直接指定要編譯的jar位置,然後直接輸出反編譯後的jar包

下載地址:http://the.bytecode.club/fernflower.jar

以前面提到的情況爲例

java -jar D:/short/jar/fernflower.jar struts2-core-2.3.16.3.jar test/rem
1.如果fernflower.jar和struts2-core-2.3.16.3.jar在同一目錄下,就寫成rem java -jar fernflower.jar struts2-core-2.3.16.3.jar test/rem
2.test目錄可以不用事先創建

參考鏈接:
https://blog.csdn.net/zz121822/article/details/79816068
https://github.com/fesh0r/fernflower
http://www.javadecompilers.com/ 在線反編譯jar包

轉載自:https://blog.csdn.net/u010999809/article/details/87649060

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章