有些時候我們面對一個class文件jar包或者war包,很想知道裡面有什麼參數,有什麼方法,但是又沒有文檔,又沒有源代碼,那怎麼辦呢。
沒關系,我們可以反編譯這些class文件或jar包或war包。
java的class文件存儲的是位元組碼,這些基本知識在此就不必啰嗦了。反正就是其存儲的信息足夠可以反編譯出來。
我們下載TTools中dist文件夾下的TdeCompile.jar可執行jar包,然後就可以開始反編譯工作了。使用方法很簡單,在命令行輸入命令即可,如下
[plain] view plain
java -jar TdeCompile.jar xxx.class
注意如果你不在TdeCompile的同目錄下,需要寫上TdeCompile.jar的路徑,其次跟一個參數xxx.class,xxx代表你所要反編譯的文件的文件名。輸出即是xxx.class.txt,它是反編譯過後的文件,txt文本格式,所在目錄通xxx.class。請確保你在xxx.class目錄下有寫許可權。
我們也可以直接操作一個jar包或war包。如:
[plain] view plain
java -jar TdeCompile.jar xxx.jar
程序可以自動識別是class文件還是jar或war包,如果是jar包或war包,則首先自動解壓縮,解壓縮的目錄為xxx.jar的同一個目錄,然後逐個反編譯class文件,在每個class文件的旁邊輸出一個xxx.class.txt文件。請確保你在jar包所在目錄有寫許可權。
TdeCompile的原理是利用了ASM去讀取每一個class文件的信息。
2. JAR反編譯修改重新打包的問題
用反編譯工具反編譯出jar里的class
把反編譯出來的內容復制到eclipse中
eclipse中src上右擊,export
當然是的 :: 暫時不知道有什麼好辦法
你要重新打包肯定是要修改其中某個class,不必要全部弄
可以把.jar 改成.zip 兩中壓縮的格式演算法一樣,只開始相差四個位元組
改成zip後把裡面你要改的class這樣處理一下再放進去,
然後把後綴還改回來
3. 怎麼反編譯.jar文件
網路cavaj或者jad,cavaj是單獨的exe程序,能把class文件反編譯。jad是eclipse插件,需要eclipse開發環境
4. 如何對java的jar包反編譯
使用現有的反編譯工具或者自己寫一個,jar包實際上是class文件打包的,class文件是二進制文件,使用流將class文件讀入,然後轉為字元再寫入到文件中就完成反編譯了。不過經過混淆過的jar包好像不能反編譯。
5. 如何反編譯jar文件
使用dex2jar工具可快速反編譯jar文件
6. 我想問下打包解包jar與編譯反編譯jar意思一樣嗎
jar其實就是Zip格式的壓縮包,打包/解包,其實就是壓縮本質上就是壓縮與解壓縮,包內的文件是Class文件編譯/反編譯 就不一樣了,是把Java源文件與Class文件相互轉換.
7. 在命令行下,如何使用JAD反編譯jar文件 轉
操作方法如下:
1)首先使用jar命令將jar文件解壓縮到classes目錄(假設已經設置好了CLASSPATH等,jar.exe是放在jdk的bin目錄下的)
CMD>jar -xvf test.jar -C classes
2)然後使用jad命令對上面產生的classes目錄進行反編譯
CMD>[jad_home]/jad.exe -r -ff -d src -sJavaclasses/**/*.class
含義如下:
其中-r 表示恢復源文件的目錄結構,,-ff 表示將類屬性定義放在類方法定義之前, -d 表示輸出目錄,-s 表示文件的擴展名。
所有的java文件將會被放置到src目錄下。
8. java 怎麼把jar 文件反編譯
這個很簡單,把jar包碃孩百絞知悸版溪保婁反編譯這個你應該知道了,很多工具jd gui就是不錯的一個,然後,你用Eclipse等工具把你反編譯的文本貼到java文件中。
這時肯定有編譯錯誤,你可以把你軟體中的jar包都引為classpath下。
編譯通過後,就可以去取.class文件了再放回jar包中原有的目錄。
全部搞定。
~如果你認可我的回答,請及時點擊【採納為滿意回答】按鈕
~~手機提問的朋友在客戶端右上角評價點【滿意】即可。
~你的採納是我前進的動力
~~O(∩_∩)O,記得好評和採納,互相幫助,謝謝。
9. jar包如何反編譯
使用jd-gui工具打開原始的Jar包,選擇File-->Save All Sources,會生成一個zip壓縮包。解壓這個壓縮包,就可以得到java源碼文件