1. 程式人生 > >如何快速反編譯JAVA的jar包或war包

如何快速反編譯JAVA的jar包或war包

原創文章,轉載請註明。

        有些時候我們面對一個class檔案jar包或者war包,很想知道里面有什麼引數,有什麼方法,但是又沒有文件,又沒有原始碼,那怎麼辦呢。

        沒關係,我們可以反編譯這些class檔案或jar包或war包。我們用到下面這個工具,

        java的class檔案儲存的是位元組碼,這些基本知識在此就不必囉嗦了。反正就是其儲存的資訊足夠可以反編譯出來。

        我們下載TTools中dist資料夾下的TdeCompile.jar可執行jar包,然後就可以開始反編譯工作了。使用方法很簡單,在命令列輸入命令即可,如下

    java  -jar  TdeCompile.jar xxx.class 


        注意如果你不在TdeCompile的同目錄下,需要寫上TdeCompile.jar的路徑,其次跟一個引數xxx.class,xxx代表你所要反編譯的檔案的檔名。輸出即是xxx.class.txt,它是反編譯過後的檔案,txt文字格式,所在目錄通xxx.class。請確保你在xxx.class目錄下有寫許可權。

        我們也可以直接操作一個jar包或war包。如:

    java  -jar  TdeCompile.jar xxx.jar   

        程式可以自動識別是class檔案還是jar或war包,如果是jar包或war包,則首先自動解壓縮,解壓縮的目錄為xxx.jar的同一個目錄,然後逐個反編譯class檔案,在每個class檔案的旁邊輸出一個xxx.class.txt檔案。請確保你在jar包所在目錄有寫許可權。

        TdeCompile的原理是利用了ASM去讀取每一個class檔案的資訊。