- 軟件大(dà)小:1.29M
- 軟件語言(yán):中文
- 軟件類型:國產軟件
- 軟件類別:免費軟件 / 編程工具
- 更新時間:2021-04-13 13:56
- 運行環(huán)境:WinAll, WinXP
- 軟件等級(jí):
- 軟件廠商:
- 官方網(wǎng)站:http://java-decompiler.github.io/
53.09M/中(zhōng)文/2.0
841KB/中(zhōng)文/0.0
595KB/中(zhōng)文(wén)/10.0
29.12M/中文(wén)/0.0
580KB/中文/10.0
jd gui全(quán)稱(chēng)為java decompiler,就(jiù)是一(yī)個java語(yǔ)言的反編譯軟件,適合於java編程人(rén)員使(shǐ)用(yòng),它可以對完整的jar文(wén)件進行反編譯,還可以(yǐ)直接修改相關的代碼,以及一些其他(tā)的功(gōng)能(néng)。大家使用(yòng)前注意看下(xià)方(fāng)的使用幫助哦!教你(nǐ)如何解決打不開的(de)問(wèn)題。
第一(yī)次運行的時(shí)候可能提示“this application requires a Java Runtime Environment 1.8.0”(如下圖所示),後麵的版本號可能會是1.5.0-1.8.0.
這個大概的意思就是缺失java1.8.0的支持,隻要安裝一(yī)個就可以(yǐ)了(le),點擊“確定”會自動跳轉到(dào)官網進行安裝;或者點擊下麵的鏈接(jiē)進行安(ān)裝。
大家都知(zhī)道,將源代碼(mǎ)轉換成二進製執行代(dài)碼的過(guò)程叫(jiào)“編譯”,比如將C源代碼編譯成exe可執(zhí)行文件;那麽把二(èr)進製執行(háng)代碼的過程就叫“反編(biān)譯(yì)”,比如把exe轉換為C源(yuán)代碼就叫(jiào)“反編譯”。
由於主流的C的(de)編譯器都進行了代(dài)碼的(de)優化,因此把C編譯生成的exe文件(jiàn)反編譯(yì)成C代(dài)碼非常困難(nán)。但是像(xiàng)Java、.net這樣基於虛擬(nǐ)機技術(shù)的編程語言則反編(biān)譯非常容易,Java平台下有Jad、Jode、JD等反編譯器(qì),.net平台(tái)下則有(yǒu)Reflector等(děng)反編譯器,反編譯質量(liàng)非常高(gāo),甚至和源代(dài)碼幾乎(hū)沒什麽差別(bié)。
反編譯得到的是源代碼嗎?
反編譯(yì)得到的代碼是非(fēi)常接近於源代碼,但是或多或(huò)少(shǎo)與源代碼(mǎ)有(yǒu)一些差異(yì)的,比如一些表達式(shì)被優化(huà)掉了,比(bǐ)如:
下麵的(de)源代碼:
int i=1+1;
學過《編譯原理》的(de)同學(xué)知道有(yǒu)“常量優化”這個編譯優化算法,因此(cǐ)上邊的源(yuán)代(dài)碼一(yī)般會被優(yōu)化為:int i=2;
由於(yú)在編譯過程中已經進行了優化,把“1+1”這個原始(shǐ)的信(xìn)息丟掉了,因此反編譯出來的(de)代碼隻能(néng)是:
int i=2;
可以看到反(fǎn)編(biān)譯得到的代碼(mǎ)和源代碼是有區(qū)別的。
比如(rú):andriod中(zhōng)
download = (Button)findViewById(R.id.xiaz);
被優化成了download = (Button)findViewById(0x7f070018);
一、支持眾(zhòng)多java編譯器的(de)反編譯;
二、支持對整個(gè)Jar文件進行(háng)反編譯,並本源代碼可直接(jiē)點擊進行相(xiàng)關代碼的跳轉(zhuǎn);
解壓縮後打開軟件,直接(jiē)將jar包拖進去就可以進行(háng)編譯了。
androids反編譯說明:
androids的apk反編譯工具,適合大家一起學,可以把androids生成的apk轉為java代碼,希望對(duì)大家有(yǒu)用(yòng)。
一(yī)、更改apk文件(jiàn)的後綴名,如:LianyunHelper3.0.11.apk改成LianyunHelper3.0.11.zip
二、用zip解壓縮LianyunHelper3.0.11.zip文(wén)件
三、從解壓(yā)縮的文件(jiàn)夾中取出classes.dex文件並放到dex2jar.bat所(suǒ)在(zài)目錄
四、運行(háng)cmd命令,進入(rù)dex2jar.bat所在的(de)目錄,輸入dex2jar.bat classes.dex即可(kě)生成classes.dex.dex2jar.jar文件(jiàn)
五、用jd-gui工具打開classes.dex.dex2jar.jar文件,即可(kě)看(kàn)到源碼
六(liù)、將androidsManifest.xml文件放(fàng)到AXMLPrinter2.jar所在目(mù)錄,運(yùn)行cmd命令(lìng),進入 AXMLPrinter2.jar所在目錄,輸入java -jar AXMLPrinter2.jar androidsManifest.xml > androidsManifest.txt。
JD-Core和(hé)JD-GUI區別:
JD-Core是一個免費(fèi)的庫,從一(yī)個或多個“.class”文件中 重構Java源代碼。JD-Core可以用來恢(huī)複丟失的源代碼,並深究Java運行時類庫。支持Java 5的功能:如(rú)注釋,泛型或枚舉 。
JD-GUI 和(hé) JD-eclipse都包括JD-Core。JD-GUI是一(yī)個獨立的顯示“.class” 文(wén)件(jiàn)Java源代碼的圖(tú)形用戶界麵工(gōng)具。您可以使用(yòng)JD-GUI瀏覽和重建源(yuán)代碼(mǎ)的(de)即時訪(fǎng)問方法(fǎ)和字段,以代碼高度方式來顯示(shì)反編譯過來的代碼。
v1.6.0更新內容:
1.修正了“.class”表達式的識別錯誤。
2.修正錯(cuò)誤識別“開(kāi)關枚(méi)舉”指令。
3.用(yòng)已知的數字常量(例如Long.MAX_VALUE)替換數值。
4.刪除了不必要的“java.lang”前綴。
5.修(xiū)正了在最後位(wèi)置上包含三元運算符的try-cacht語(yǔ)句的識別錯誤。
6.添加了返回(huí)的通用變量的轉換說(shuō)明。
7.隱藏匿名類的合(hé)成字(zì)段(duàn)。
請描述您所遇到的(de)錯誤,我(wǒ)們將盡快(kuài)予以修正,謝謝!
*必(bì)填項,請輸入(rù)內容