本文對經常使用的反編譯工具進行簡單介紹
JD-GUI、procyon-decompiler、luyten、crf
反編譯工具分類
JD-GUI
JDK7以及以前能夠使用 JD-GUI,若是版本>=1.8 各類問題
http://java-decompiler.github.io
procyon-decompiler
若是版本>=1.8 ,能夠使用 procyon-decompiler,不過是命令行界面
https://bitbucket.org/mstrobel/procyon/downloads/
luyten
luyten是Procyon的GUI,只須要下載luyten便可,不用下載Procyon
https://github.com/deathmarine/Luyten
下載地址
https://github.com/deathmarine/Luyten/releases
crf
crf也能夠支持更高版本
http://www.benf.org/other/cfr/
小結
若是你的版本<=7,均可以使用,若是版本更高,請使用除了JD-GUI之外的選擇
使用
JD-GUI
略,JD-GUI網上教程不少,再也不介紹。
procyon-decompiler
能夠直接解析class文件到cmd窗口顯示
也能夠將反編譯以後的文件保存到指定位置,若是須要保存在指定位置,須要增長 -o命令參數,而且須要指定保存的路徑
直接顯示:
java -jar D:\ApplicationFiles\program\procyon-decompiler-0.5.30.jar D:\ProgramData\ideaProjects\...\news\NewsController.class
保存文件:
java -jar D:\ApplicationFiles\program\procyon-decompiler-0.5.30.jar D:\ProgramData\ideaProjects\...\news\NewsController.class -o C:\Users\noteless\Desktop\dddddd
luyten
luyten是圖形化界面
經過File直接打開class文件便可
固然,也能夠進行文件保存等操做
注意
直接打開luyten的時候,給出了下面的提示信息
可是,系統中的java環境是沒有問題的,也是一直在使用的,CMD下運行java或者javac命令都沒有問題
這是爲何?
據網上分析是由於使用了免安裝版本的JDK,簡單說不是從官網下載可執行程序一步一步安裝而來
這也就致使了註冊表中不存在JDK的信息
一種變通的途徑就是藉助於命令,經過在命令提示符下面輸入 java -jar .\luyten-0.5.4.exe打開
(此時,個人文件存在於桌面上,因此使用的當前路徑)
若是設置到其餘位置,請給出路徑,好比
也能夠進一步設置爲bat命令
文件就一行內容:
java -jar D:\ApplicationFiles\program\luyten-0.5.4.exe
再進一步能夠建立一個快捷方式,使用下文的方式,就能夠直接使用WIN鍵+R打開
另外一種方法,就是手動設置註冊表
還有一種方法是從新安裝JDK,走一遍過程
建議經過命令java -jar就行了,改註冊表後續出現什麼奇怪問題,本身可能都忘記了是本身改出來的
從新安裝麻煩費事
CFR
http://www.benf.org/other/cfr/
CFR更新仍是蠻及時的
它的使用,與procyon-decompiler沒有區別
能夠直接反編譯呈如今CMD中,也能夠輸出到文件中
直接解析:
C:\Users\noteless>java -jar D:\ApplicationFiles\program\cfr-0.141.jar C:\Users\noteless\Desktop\NewsController.class
輸出文件:
java -jar D:\ApplicationFiles\program\cfr-0.141.jar C:\Users\noteless\Desktop\NewsController.class
--outputdir C:\Users\noteless\Desktop\xxx