1. 程式人生 > >java反編譯工具jad

java反編譯工具jad

tree 選項 基礎 修改 sof 建立 引用 .html 根據

下好以後解壓就可以用了,軟件就只有一個exe文件和一個幫助文件。
在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front
End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java
Decompiler、NMI’s Java Class Viewer和國產的JAVA源代碼反編譯專家。
JAD本身是一個命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內核的基礎之上加了一個圖形界面而已。這麽多種產品的共同選擇,足可證明JAD
在JAVA反編譯領域中的尊貴地位。

JAD是使用Microsoft Visual
C++開發的,運行速度非常快,可以處理很復雜的JAVA編譯文件。眾多的參數使JAD可以靈活應付多種加密手段,令反編譯的代碼更加優化和易讀。由於
JAD參數太多,沒必要一一解釋,其中有幾個最常用的如下:

-d <dir> - 用於指定輸出文件的目錄

-s <ext> - 輸出文件擴展名(默認為: .jad),通常都會把輸出文件擴展名直接指定為.java,以方便修改的重新編譯。

-8 - 將Unicode字符轉換為ANSI字符串,如果輸出字符串是中文的話一定要加上這個參數才能正確顯示。
最常用的反編譯指令如下所示:

Jad -d c:\test -s .java -8 HelloWorld.class

這將當前目錄下的HelloWorld.class反編譯為HelloWorld.java並保存在c:\test目錄裏,其中的提示輸出為中文,
而不是Unicode代碼。


附:對下載後的說明文檔的簡單翻譯,希望對你有所幫助(mathsfan修改於2006.10.29,翻譯的不好請見諒)

0、1略去

2、怎樣使用JAD
反編譯一個簡單的java class文件‘example1.class‘用如下命令:

jad example1.class
這個命令將在當前目錄下創建一個‘example1.jad‘文件,假如當前目錄下存在這個文件,則JAD會提示你覆蓋它與否。

選項 -o 允許覆蓋時沒有任何提示。
選項 -s <ext>允許改變輸出文件的後綴名:

jad -sjava example1.class
這個命令將要創建‘example1.java‘文件。

在一起使用-o 和-sjava選項時請小心,因為JAD會附帶的重寫你的源文件。
JAD使用JAVA
class的名字作為輸出文件的名字。例如,假如class文件‘example1.class‘包含JAVA class
‘test1‘那麽JAD將會創建文件‘test1.jad‘而不是‘example1.jad‘。假如你想具體指明你的輸出文件的名字使用輸出重命名:

jad -p example1.class > myexm1.java

選項 –d允許你具體指明另外的輸出文件目錄,不管這個目錄是新建的、默認的或者當前目錄。例如:

jad -o -dtest -sjava *.class

(或者 jad -o -d test -s java *.class, 這個有同樣的效果)

這個命令將在當前目錄下反編譯所有的.class文件並在‘test‘文件夾下建立所有擴展名為.java的輸出文件。

假如你想反編譯整個目錄樹下的JAVA classes,使用如下命令:

jad -o -r -sjava -dsrc tree/**/*.class

這個命令將反編譯當前目錄樹裏所有的.class文件並且在當前目錄下建立src文件夾後根據包的名字來輸出文件。例如,假如有一個文件
‘tree/a/b/c.class‘在包‘a.b‘下包含了class ‘c‘,那麽輸出文件的名字為‘src/a/b/c.java‘。

在先前的命令上將通配符那裏註釋掉。則它是用JAD來處理而不是command殼,所以在UNIX上的最後一次參數將會被單獨引用。

jad -o -r -sjava -dsrc ‘tree/**/*.class‘

你想檢查編譯後的文件的正確性或者出於好奇的情況下,這裏有一個選項 –a 將會告訴JAD給輸出的JAVA虛擬字節碼註解

參考:https://zhidao.baidu.com/question/435325023038306484.html

jad官網下載:https://varaneckas.com/jad/

java反編譯工具jad