bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

java反編譯代碼過程 java反編譯命令用法

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

Java代碼的編譯與反編譯

為高臺等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及高臺網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設、成都網(wǎng)站設計、高臺網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

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

一、什么是編譯

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

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

二、什么是反編譯

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

三、Java類的編譯與反編譯

我們在最初學習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文件得到java文件(或者說是程序員能看懂的Java文件)

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

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

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

五、反編譯工具

1、javap

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

客戶端:

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

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

Eclipse插件:

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

Java反編譯代碼解釋:

public static String format(long paramLong)//paramLong是一個傳遞進來的long型整數(shù)

{

int i = 60 * 60;定義i=60乘60就是3600

long l1 = paramLong / i;定義l1等于paramLong除以i

long l2 = (paramLong - l1 * i) / 60;定義

long l3 = paramLong - l1 * i - l2 * 60;定義

String str1;聲明字符串

label64: String str2;label是監(jiān)聽

if (l1 10L)如果l1小于10

{

str1 = "0" + l1;字符串拼接

if (l2 = 10L)如果l2大于等于10

break label175;結(jié)束監(jiān)聽

str2 = "0" + l2;字符串拼接

label92: if (l3 = 10L)監(jiān)聽如果l3大于等于10

break label195;結(jié)束監(jiān)聽

}

for (String str3 = "0" + l3; ; str3 = l3)for循環(huán),

{

return str1 + ":" + str2 + ":" + str3;

str1 = l1;

break label64:

label175: str2 = l2;

label195: break label92:

}

}

主要研究一下監(jiān)聽是怎么用的吧

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

選擇一款反編譯工具即可

1、JD-GUI

JD-GUI 是顯示java 源代碼 *.class文件的 圖形界面工具。可以在這里下載:JD-GUI-DownLoad

下載下來后,打開該工具,直接將jar包 拖拽到 顯示窗口即可查看源代碼。

2、JD-Eclipse

(1)下載 JD-Eclipse 插件。下載后,打開Eclipse,選擇:Help--Install New Software...--add --archive... 按步驟操作即可:

安裝后,重啟Eclipse,應該可以查看 *.class文件的代碼。

ADD and Archive...

3、JD-IntelliJ

JD-Intellij 是 IntelliJ IDEA 的插件,安裝了這個插件,可以方便查看 jar包源碼。下載JD-Intellij

以Android studio為例: 可以離線安裝也可以在線安裝。

怎么把class文件反編譯成java文件

Java中使用eclipse提供的插件對class進行反編譯成java文件,如下步驟:

1、安裝jadclipse插件

使用jadclipse插件一定要注意Eclipse版本。jadclipse_3.2.4,它對應的是Eclipse3.2版,jadclipse_3.3.0可以用于Eclipse3.3M6以上版。大家千萬不要把jadclipse_3.3.0放到Eclipse3.2中,也不要把jadclipse_3.2.4放到Eclipse3.3中,將jadclipse插件(版本自己選擇)直接copy到Eclipse目錄中的plugins文件夾下,然后打開Eclipse,選擇"窗口"-"首選項"-"常規(guī)"-"編輯器"-"文件關聯(lián)",點擊文件關聯(lián)中的*.class,下面就會看到"JadClipse Class File Viewer",選中它,點擊缺省值,點擊OK,將它設置為默認的類查看器。如圖:

另外在用jadclipse的時候,一定要加入jad.exe這個程序,如果只有插件而沒有jad,那么還是不能反編譯成功,會顯示如下所示的錯誤,因此我們還要安裝jad。

2、安裝jad

可以在??這個地址下載到最新的jad,而且有不同平臺的版本,本文后面也有相關下載。將下載的壓縮包解壓后復制jad.exe至你的%JAVA_HOME%\bin目錄下,這樣做的好處是使用方便。然后在Eclipse中設置一下,選擇”窗口”-“首選項”-“Java”-“JadClipse”,在path to decompiler中輸入jad.exe的絕對路徑。這樣做是為了保證反編譯的效果。大象做過測試,只要將jad.exe放入%JAVA_HOME%\bin目錄下,就沒問題了,這個地方不設置也沒關系,不過本人還是建議大家設置一下,其它地方不用管。其實大象也不知道該怎么弄,就讓它保持默認值好了。

到這里,工作就做完了,現(xiàn)在再來按住Ctrl,用鼠標點擊Element,貼上部分反編譯代碼,如圖:

分享題目:java反編譯代碼過程 java反編譯命令用法
文章分享:http://vcdvsql.cn/article42/ddsiohc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站App設計建站公司網(wǎng)站改版云服務器手機網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(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)頁設計