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