java代碼實現(xiàn)反編譯,java代碼反編譯風(fēng)險

如何將java中的.class文件反編譯

安裝Java jdk后

創(chuàng)新互聯(lián)是一家專業(yè)提供袁州企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、H5建站、小程序制作等業(yè)務(wù)。10年已為袁州眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

看安裝目錄里有沒有jad.exe,沒有要下載,一般都有的

配置Java環(huán)境變量

開始-運行-cmd-回車-進入命令行窗口:

cd+空格+class文件所在路徑:

按下面的命令進行反編譯:

例如:[2] jad -sjava example.class 回車

在目錄里可以看到example.java源文件

[1] 反編譯一個class文件:jad example.class,會生成example.jad,用文本編輯器打開就是java源代碼

[2] 指定生成源代碼的后綴名:jad -sjava example.class,生成example.java

[3] 改變生成的源代碼的名稱,可以先使用-p將反編譯后的源代碼輸出到控制臺窗口,然后使用重定向,輸出到文件:jad -p example.class myexample.java

[4] 把源代碼文件輸出到指定的目錄:jad -dnewdir -sjava example.class,在newdir目錄下生成example.java

[5] 把packages目錄下的class文件全部反編譯:jad -sjava packages/*.class

[6] 把packages目錄以及子目錄下的文件全部反編譯:jad -sjava packages/**/*.class,不過你仍然會發(fā)現(xiàn)所有的源代碼文件被放到了同一個文件中,沒有按照class文件的包路徑建立起路徑

[7] 把packages目錄以及子目錄下的文件全部反編譯并建立和java包一致的文件夾路徑,可以使用-r命令:jad -r -sjava packages/**/*.class

[8] 當(dāng)重復(fù)使用命令反編譯時,Jad會提示“whether you want to overwrite it or not”,使用-o可以強制覆蓋舊文件

[9] 還有其他的參數(shù)可以設(shè)置生成的源代碼的格式,可以輸入jad命令查看幫助,這里有個人做了簡單的翻譯:jad命令總結(jié)

[10] 當(dāng)然,你會發(fā)現(xiàn)有些源文件頭部有些注釋信息,不用找了,jad沒有參數(shù)可以去掉它,用別的辦法吧。

教我怎樣 java反編譯可以嗎?

反編譯的工具有好多, 在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和國產(chǎn)的JAVA源代碼反編譯專家。

jad是java的反編譯工具,是命令行執(zhí)行,反編譯出來的源文件可讀性較高??上в闷饋聿惶奖恪_€好

找到eclipse下的插件,叫jadclipse,安裝好之后,只要雙擊.class文件,就能直接看源文件,包括jar

包中的class文件,也可以直接反編譯。

1.下載jad1.5.8e

下載后解壓。解壓縮后將jad.exe拷貝到JRE的bin目錄下,如d:/Java/jre1.5/bin

2.下載net.sf.jadclipse_3.2.4.jar

3.安裝插件,有如下兩種方法

A.將net.sf.jadclipse_3.2.4.jar復(fù)制到D:/leaf/eclipse/plugins目錄下。

B.在d:/leaf下建立ecliplsePlungin/jadclipse/eclipse/plugins目錄,將net.sf.jadclipse_3.2.4.jar放到該目錄。在d:/leaf/eclipse/links下建jadclipse.link,內(nèi)容為path=d/://leaf//ecliplsePlungin//jadclipse

3.啟動Eclipse后,在Windows(窗口)--Perference(首選項)--Java下面應(yīng)該會多出一個JadClipse目錄,相關(guān)的設(shè)置可以在此修改配置jadclipse:設(shè)置path to decompiler為jad.exe的全路徑,如:d:/Java/jre1.5/bin/jad.exe,在Directory for temporary files中指定臨時文件的路徑,如:C:/Java/temp

4、在Eclipse的Windows--Perference--General-Editors-File Associations中修改“*.class”默認關(guān)聯(lián)的編輯器為“JadClipse Class File Viewer”

5、安裝完成,雙擊class文件,Eclipse將自動反編譯了。

6、把*.java 和*.class文件放在同一文件夾下,在反編譯時它回自動去尋找*.java的文件。

反編譯工具jad簡單用法

以下假設(shè)jad.exe在c:/java目錄下

一、基本用法

Usage: jad [option(s)]

直接輸入類文件名,且支持通配符,如下所示。

c:/java/jad example1.class

c:/java/jad *.class

結(jié)果是將example1.class反編譯為example1.jad。將example1.jad改為example1.java即得源

文件。

二、Option -o

不提示,覆蓋源文件

三、Option -s

c:/java/jad -sjava example1.class

反編譯結(jié)果以.java為擴展名。

四、Option -p

將反編譯結(jié)果輸出到屏幕

c:/java/jad -p example1.class

將反編譯結(jié)果重定向到文件

c:/java/jad -p example1.classexample1.java

五、Option -d

指定反編譯的輸出文件目錄

c:/java/jad -o -dtest -sjava *.class

java的反編譯怎么使用,說具體點?

1.下載jad1.5.8e

下載后解壓。解壓縮后將jad.exe拷貝到JRE的bin目錄下,如\Java\jre1.5.0_06\bin

2.下載 jadclipse_3.1.0.jar

將jadclipse_3.1.0.jar復(fù)制到D:\Program Files\eclipse\myplugin\eclipse\plugins目錄下(用的是

link方式安裝插件的)。

3.啟動Eclipse后,在Windows--Perference--Java下面應(yīng)該會多出一個JadClipse目錄,相關(guān)的設(shè)置可

以在此修改

配置jadclipse:設(shè)置path to decompiler為jad.exe的全路徑,如:F:\Java\jre1.5.0_06\bin\jad.exe

,在Directory for temporary files中指定臨時文件的路徑,如:G:\Java\eclipse-SDK-3.0-win32\temp

4、在Eclipse的Windows--Perference--General-Editors-File Associations中修改“*.class”默

認關(guān)聯(lián)的編輯器為“JadClipse Class File Viewer”

5、安裝完成,雙擊class文件,Eclipse將自動反編譯了。

java的反編譯怎么做的?

你做了很多了吧!很好,繼續(xù)學(xué)吧!

class.forName():加載的是指定的一個類

.class文件是由JAVA虛擬機加載,解釋執(zhí)行的

閣下 可能把 方向搞錯了。

JAVA的反射機制很強大,基本上所有的涉及到配置文件的,都有反射的影子。尤其是JAVA編程中的框架SSH,ibates等等。

這些框架因為使用了反射機制,在普通程序員眼里,就只有類和配置。這樣系統(tǒng)很容易擴展和維護。

反射機制 也不要研究得太深,對于中國這個JAVA軟件行業(yè),還是應(yīng)用維多,你應(yīng)該不會想自己開發(fā)一個框架吧。

什么是Java代碼的編譯與反編譯?

Java代碼的編譯與反編譯

2017-02-21Hollis數(shù)盟

一、什么是編譯

1、利用編譯程序從源語言編寫的源程序產(chǎn)生目標程序的過程。

2、用編譯程序產(chǎn)生目標程序的動作。編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優(yōu)化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發(fā)現(xiàn)有語法錯誤,給出提示信息。

二、什么是反編譯

計算機軟件反向工程(Reverseengineering)也稱為計算機軟件還原工程,是指通過對他人軟件的目標程序(可執(zhí)行程序)進行“逆向分析、研究”工作,以推導(dǎo)出他人的軟件產(chǎn)品所使用的思路、原理、結(jié)構(gòu)、算法、處理過程、運行方法等設(shè)計要素,某些特定情況下可能推導(dǎo)出源代碼。反編譯作為自己開發(fā)軟件時的參考,或者直接用于自己的軟件產(chǎn)品中。

三、Java類的編譯與反編譯

我們在最初學(xué)習(xí)Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。

class文件打破了C或者C++等語言所遵循的傳統(tǒng),使用這些傳統(tǒng)語言寫的程序通常首先被編譯,然后被連接成單獨的、專門支持特定硬件平臺和操作系統(tǒng)的二進制文件。通常情況下,一個平臺上的二進制可執(zhí)行文件不能在其他平臺上工作。而Javaclass文件是可以運行在任何支持Java虛擬機的硬件平臺和操作系統(tǒng)上的二進制文件。

那么反編譯呢,就是通過helloworld.class文件得到j(luò)ava文件(或者說是程序員能看懂的Java文件)

四、什么時候會用到反編譯

1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那么我們可以把它反編譯成我們可以看得懂的文件。

2、學(xué)習(xí)Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現(xiàn)細節(jié),我們可以借助反編譯。

五、反編譯工具

1、javap

2、Jad:官網(wǎng)(墻裂推薦)

客戶端:

可以在官網(wǎng)下載可執(zhí)行文件,找到對應(yīng)的操作系統(tǒng)的對應(yīng)版本,然后進行安裝使用。

因為我使用的是linux操作系統(tǒng),所以我下載的是Linux版本的工具,這個工具下載好之后會有一個執(zhí)行文件,只要在執(zhí)行文件所在目錄執(zhí)行./jadhelloworld.class就會在當(dāng)前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的Java代碼

Eclipse插件:

下載地址在官網(wǎng)下載插件的jar包,然后將jar包放到eclipse的plugins目錄下‘在打開Eclipse,Eclipse-Window-Preferences-Java,此時你會發(fā)現(xiàn)會比原來多了一個JadClipse的選項,單擊,在Pathtodecompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時文件的目錄。當(dāng)然在JadClipse下還有一些子選項,如Debug,Directives等,按照默認配置即可。基本配置完畢后,我們可以查看一下class文件的默認打開方式,Eclipse-Window-Preferences-General-Editors-FileAssociations我們可以看到class文件的打開方式有兩個,JadClipse和Eclipse自帶的ClassFileViewer,而JadClipse是默認的。全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼

分享名稱:java代碼實現(xiàn)反編譯,java代碼反編譯風(fēng)險
路徑分享:http://muchs.cn/article2/phieic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站App開發(fā)、網(wǎng)頁設(shè)計公司、虛擬主機、網(wǎng)站維護企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計