jad簡單用法(以下假設jad.exe在D:\JDK\jad目錄下)
一、基本用法 Usage: jad[option(s)]
直接輸入類文件名,且支持通配符,如下所示。
D:\JDK\jad>jadabc.class
D:\JDK\jad>jad *.class 結果是將abc.class反編譯為abc.jad。將abc.jad改為abc.java即得源文件。
二、Option-o 不提示,覆蓋源文件
三、 Option-s D:\JDK\jad>jad-s javaabc.class 反編譯結果以.java為擴展名。
四、 Option-p 將反編譯結果輸出到屏幕
D:\JDK\jad>jad-pabc.class 將反編譯結果重定向到文件 D:\JDK\jad>jad-pabc.class>abc.java
五、 Option-d 指定反編譯的輸出文件目錄 D:\JDK\jad>jad-o-dtest-sjava*.class
命令行選擇的列表
-a -用JVM字節格式來注解輸出
-af -同 -a,但是注解的時候用全名稱
-clear -清除所有的前綴
-b -輸出多于的括號 (e.g., if(a) { b(); }, default: no)
-d -指定輸出文件的文件目錄
-dead -試圖反編譯代碼的dead 部分(default: no)
-disass -不用用字節碼的方式反編譯 (no JAVA source generated)
-f -輸出整個的名字,無論是類還是方法
-ff -輸出類的成員在方法之前 (default: after methods)
-i -輸出所有的變量的缺省的最初值
-l -將strings分割成指定數目的塊的字符 (default: no)
-lnc -將輸出文件用行號來注解 (default: no)
-nl -分割strings用新行字符 newline character (default: no)
-nodos -不要去檢查class文件是否以dos方式寫 (CR before NL, default: check)
-nocast -不要生成輔助文件
-nocode -不要生成方法的源代碼
-noconv -不要轉換java的定義符 (default: do)
-noctor -不允許空的構造器存在
-noinner -關掉對內部類的支持 (default: turn on)
-nolvt -忽略局部變量的表信息
-nonlb -不要輸出一個新行在打開一個括號之前 (default: do)
-o - 無需確認直接覆蓋輸出 (default: no)
-p -發送反編譯代碼到標準輸出 STDOUT (e.g., for piping)
jadclipse的配置
安裝好之后,只要雙擊.class文件,就能直接看源文件,
包括jar包中的class文件,也可以直接反編譯。
1.下載jad1.2.8
http://www.kpdus.com/jad.html#download
下載后解壓。只用過最新版1.2.8能夠成功,1.2.7都不行。
2.下載 jadclipse2.06beta
http://sourceforge.net/projects/jadclipse/
按eclipse的plguin進行安裝,將jadclipse目錄解壓到eclipse/plugin目錄下。
3.配置jadclipse:
window>preferences>java>JadClipse中,
設置path to decompiler為jad.exe的全路徑,如:d:jadjad.exe
在Directory for temporary files中指定臨時文件的路徑。
在workbench>file associations中,
將*.class的編輯器,設為JacClipse。
4.反編譯
找到一個class文件,雙擊打開,能看到編譯后的源文件。
您也可以在此下載完整包。
jad反編譯專用包