我們只有一個(gè)類(lèi)的class文件,但是我們又看不懂Java的class文件,那么我們可以把它反編譯成我們可以看得懂的文件。
公司主營(yíng)業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出龍井免費(fèi)做網(wǎng)站回饋大家。
通俗的說(shuō),反編譯是一個(gè)對(duì)目標(biāo)可執(zhí)行程序進(jìn)行逆向分析,從而得到原始代碼的過(guò)程。尤其是像.NET、Java這樣的運(yùn)行在虛擬機(jī)上的編程語(yǔ)言,更容易進(jìn)行反編譯得到源代碼。
反編譯:下載一個(gè)jad 反編譯工具jad簡(jiǎn)單用法 以下假設(shè)jad.exe在c:/java目錄下 基本用法 Usage: jad [option(s)]直接輸入類(lèi)文件名,且支持通配符,如下所示。
反編譯出來(lái)的東西,有時(shí)候就是這樣的。建議你換個(gè)反編譯軟件試試。
某些特定情況下可能推導(dǎo)出源代碼。反編譯作為自己開(kāi)發(fā)軟件時(shí)的參考,或者直接用于自己的軟件產(chǎn)品中。
eclipse安裝jad插件。 將jad.exe程序拷貝到j(luò)ava.exe所在的目錄。
然后把enet.sf.jadclipse_0.jar放入:eclipse主目錄下的 plugin文件夾下,然后重啟 eclipse。
private 的屬性 方法不會(huì)被反編譯出來(lái)的。
然后在Eclipse中設(shè)置一下,選擇”窗口”-“首選項(xiàng)”-“Java”-“JadClipse”,在path to decompiler中輸入jad.exe的絕對(duì)路徑。這樣做是為了保證反編譯的效果。
將下載下來(lái)的Jadclipse,如net.sf.jadclipse_0.jar拷貝到Eclipse下的plugins目錄即可。
應(yīng)該是在Eclipse安裝Java反編譯工具吧,過(guò)程很簡(jiǎn)單:下載jad.exe以及jadclipse_xxx.jar。
1、并不是所有的class都能反匯編成java文件的,尤其是那些經(jīng)過(guò)obfuscation(代碼混淆)的class文件,混淆器故意生成很難或者根本不可能被反匯編的程序。
2、能夠編譯并運(yùn)行,說(shuō)明肯定生成了class文件。
3、你的java命令是怎么寫(xiě)的?一般是:java + class文件名;例如:A.java 編譯后生成A.class文件。則命令為:java A 如果這樣都不行,可能是你所運(yùn)行的class文件不在你現(xiàn)在所訪問(wèn)的路徑下。
4、一般情況下Java應(yīng)用的開(kāi)發(fā)者為了保護(hù)代碼不被別人抄襲,在生成class文件的時(shí)候都java文件進(jìn)行了混淆,這種class文件用反編譯工具得到的結(jié)果很難看懂,并且不能進(jìn)行編譯。本文從研究的角度,淺析如何讀懂這種反編譯過(guò)來(lái)的文件。
5、一般反編譯出來(lái)的goto有以下幾種情況:while或do while循環(huán) exception處理 switch case java-class的過(guò)程中,編譯器會(huì)進(jìn)行優(yōu)化,將其處理為goto :label的形式。
6、我偶爾用過(guò)這個(gè)工具 你單獨(dú)反編譯一個(gè)文件是不行的,因?yàn)檫@個(gè)文件里的類(lèi)類(lèi)可能繼承自其它類(lèi),或者它引用了其它包的類(lèi)。在編譯時(shí)就會(huì)出錯(cuò),故無(wú)法變成class文件。你可以嘗試把整個(gè)jar進(jìn)行反編譯,然后嘗試對(duì)其進(jìn)行編譯。