計算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
JD分為JD-GUI、JD-Eclipse兩種運行方式,JD-GUI是以單獨的程序的方式運行,JD-Eclipse則是以一個Eclipse插件的方式運行。
B. 怎麼把class文件反編譯成java文件
一、基本用法
Usage:jad [option(s)]
直接輸入類文件名,且支持通配符,如下所示。
c:java>jad example1.class
c:java>jad *.class
結果是將example1.class反編譯為example1.jad。將example1.jad改為example1.java即得源文件。
二、Option -o
不提示,覆蓋源文件
三、Option -s
c:java>jad -sjava example1.class
反編譯結果以.java為擴展名。
四、Option -p
將反編譯結果輸出到屏幕
c:java>jad -p example1.class
將反編譯結果重定向到文件
c:java>jad -p example1.class>example1.java
五、Option -d
指定反編譯的輸出文件目錄
c:java>jad -o -dtest -sjava *.class
六、jad:反編譯工具下載
可以將class文件反編譯成java文件
假設將jad.exe安裝在f:/java/jad目錄下
把要反編譯的文件*.class復制到此目錄下,接著接以下步驟,
在命令行窗口環境中進入jad目錄,
然後運行:jad -s java *.class (附,*.class指要反編譯的文件名)
如果*.class文件和jad程序不在同一個目錄,就要用到path環境變數,
將jad 所在目錄加到path路徑中即可:set path=%path%;f:/java/jad
若要了解jad更為詳細的使用幫助信息,直接運行jad.exe查看
C. 幾種java反編譯軟體的安裝以及使用總結
下面是在網上找的幾種反編譯軟體的安裝以及使用:
一、JD-JUI
官網下載鏈接:http://jd.benow.ca/
下載之後解壓,
點擊「jd-gui.exe」運行:
直接將".jar"文件拖入進去即可查看里邊的「.class」文件,如上圖所示。
二:Luyten
官網下載鏈接:https://github.com/deathmarine/Luyten/releases/tag/v0.5.3
點擊「luyten-0.5.3.exe」下載,下載之後點擊運行,運行後的界面如圖所示,同樣也是講「.jar」文件拖入進入即可。
三、在eclipse中安裝反編譯工具
准備工作:
「jad.exe」下載:https://varaneckas.com/jad/
「net.sf.jadclipse_3.3.0.jar」下載:https://sourceforge.net/projects/jadclipse/files/
jad.exe」下載:
「net.sf.jadclipse_3.3.0.jar」下載:
然後將「net.sf.jadclipse_3.3.0.jar」拷貝到eclipse的plugins目錄下,再刪除eclipse的configuration目錄下「org.eclipse.update」文件,這一步很重要!
重啟eclipse,點擊window->Preference->Java,你會發現里邊多了一個插件「JadClipse」,
選中這個插件,將下圖中紅圈圈的地方的地址填寫為你 「jad.exe」文件的地址
還沒有配置完,先不要close,
點擊General->Editors->File Associations 後,進入下邊的界面
設置.class 文件默認打開方式:
設置.class without source文件的默認打開方式,
需要注意的是,「JadClipse Class File Viewer」這個一開始是沒有的,需用添加,如下圖所示:
接下來在eclipse中查看反編譯後的代碼:(這種方法可能不合適,但是能夠查看)
新建一個EJB project,右鍵「import」,選中"EJB JAR file",導入你的jar包,Finish
在項目下找你要查看的反編譯的文件即可,如果你遇到了下邊的這種情況
關閉這個文件後再次打開,就可以查看了(我的是這樣,所以我感覺這個方法不太好,但別的方法又不知道怎麼查看):
有錯誤或者有更好的方法,希望大家在下邊留言指出
D. Java反編譯工具哪個好
java反編譯工具有如下兩種:
1.jd-gui.exe反編譯最方便,界面如下:
2.XJad.exe反編譯最精確
E. 如何將java中的.class文件反編譯
安裝Java jdk後
看安裝目錄里有沒有jad.exe,沒有要下載,一般都有的
配置Java環境變數
開始-運行-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,不過你仍然會發現所有的源代碼文件被放到了同一個文件中,沒有按照class文件的包路徑建立起路徑
[7] 把packages目錄以及子目錄下的文件全部反編譯並建立和java包一致的文件夾路徑,可以使用-r命令:jad -r -sjava packages/**/*.class
[8] 當重復使用命令反編譯時,Jad會提示「whether you want to overwrite it or not」,使用-o可以強制覆蓋舊文件
[9] 還有其他的參數可以設置生成的源代碼的格式,可以輸入jad命令查看幫助,這里有個人做了簡單的翻譯:jad命令總結
[10] 當然,你會發現有些源文件頭部有些注釋信息,不用找了,jad沒有參數可以去掉它,用別的辦法吧。
F. 最好的java反編譯工具是哪個
jd-gui好
計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。JD分為JD-GUI、JD-Eclipse兩種運行方式,JD-GUI是以單獨的程序的方式運行,JD-Eclipse則是以一個Eclipse插件的方式運行。
G. JAVA反編譯軟體
由於JAVA語言安全性高、代碼優化、跨平台等特性,從1995年5月由SUN公司發布後,迅速取代了很多傳統高級語言,占據了企業級網路應用開發等諸多領域的霸主地位。 不過,JAVA最突出的跨平台優勢使得它不能被編譯成本地代碼,而要以中間代碼的形式運行在虛擬機環境中,這使得JAVA的反編譯要比別的高級語言容易實現,並且反編譯的代碼經過優化後幾乎可以與源代碼相媲美。 為了更好地保護知識產權,避免本公司的智力成果輕易被人竊取,開發者有必要對反編譯工具深入了解,以便有針對性地採取保護措施。 目前,比較流行的JAVA反編譯工具有近30種,其中有三款堪稱精品: 一、 應用廣泛的JAD 在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI』s Java Class Viewer和國產的JAVA源代碼反編譯專家。 JAD本身是一個命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內核的基礎之上加了一個圖形界面而已。這么多種產品的共同選擇,足可證明JAD在JAVA反編譯領域中的尊貴地位。 JAD是使用Microsoft Visual C++開發的,運行速度非常快,可以處理很復雜的JAVA編譯文件。眾多的參數使JAD可以靈活應付多種加密手段,令反編譯的代碼更加優化和易讀。由於JAD參數太多,沒必要一一解釋,其中有幾個最常用的如下(以JAD 1.5.8f版本為例): -d - 用於指定輸出文件的目錄 -s - 輸出文件擴展名(默認為: .jad),通常都會把輸出文件擴展名直接指定為.java,以方便修改的重新編譯。 -8 - 將Unicode字元轉換為ANSI字元串,如果輸出字元串是中文的話一定要加上這個參數才能正確顯示。 最常用的反編譯指令如下所示: Jad –d c:\javasource –s .java -8 javatest.class 這條指令將當前目錄下的javatest.class反編譯為javatest.java並保存在c:\javasource目錄里,其中的提示輸出為中文,而不是Unicode代碼。 二、 源碼開放的JODE JODE是全球最大的開源項目網站Sourceforge.net的成員,在所有的JAVA反編譯器中,JODE的反編譯效果是最好的,尤其是對付一些常見的加密手段,例如混淆技術等,更是出類拔粹。 JODE本身也是純JAVA開發的,最近越來越多的JAVA反編譯軟體也選擇JODE來做它們的核心引擎,例如JCavaj Java Decompiler、BTJ (Back To Java)、jEdit』s JavaInsight plugin等。 JODE是一個可運行的JAR文件,在windows環境下雙擊即可運行。 需要特別說明的是,JODE不是通過常規的Open->File的方式來載入JAVA編譯後的類文件(*.class)或是類包(*.jar)的, 而是通過在Options菜單中的Set Classpath來實現的,單獨的類文件可以將它的上一級目錄作為Classpath輸入,然後再選擇Reload Classpath即可。 新加入的類包或是類的名字會在左側窗口出現,雙擊類包名可以展開目錄樹結構,雙擊需要反編譯的類名則在右上角的窗口中直接顯示反編譯後的源代碼。 三、 獨樹一幟的DAVA DAVA不是一個獨立的JAVA反編譯器,而是JAVA代碼優化工具Soot的一部分。Soot和JODE一樣是純JAVA開發的,也是一個獨立的JAR包,但卻不能通過雙擊直接運行,而是象JAD一樣在命令行狀態運行。 Soot對環境變數的配置要求非常嚴格,通常情況下要對CLASSPATH做如下設置: Set CLASSPATH=%CLASSPATH%;c:\sootdir\sootclasses-2.1.0.jar;.; 其中的c:\sootdi
H. Java反編譯工具有什麼作用
就是把經過java文件編譯後的可執行的class文件再反編譯為java文件,因為經過編譯的class文件是不可閱讀的!但是由於java文件一般都不是單獨運行的,會有類之間的相互調用,所以反編譯工具反編譯後只能大體上還原原來java文件,而不能完全還原,特別是一些變數的取值,定義等..
I. Java反編譯軟體下載地址
網路搜索 jad.exe 就看到了,怎麼用下載頁會有介紹的,希望能幫助到您
J. 把.class文件轉換成.java文件,求能用的java反編譯工具,急~
Cavaj ,自己網路或google