當前位置:首頁 » 編程軟體 » java反編譯還原

java反編譯還原

發布時間: 2022-06-23 17:17:09

1. 反編譯出來的java文件如何重新編譯

java程序編譯成class文件,當中存放的是機器碼,供java虛擬機調用,你在一般編譯器中是打不開class文件的,有個叫jd-gui的編譯器可以將class文件重新編譯成java文件

2. Java反編譯工具有什麼作用

就是把經過java文件編譯後的可執行的class文件再反編譯為java文件,因為經過編譯的class文件是不可閱讀的!但是由於java文件一般都不是單獨運行的,會有類之間的相互調用,所以反編譯工具反編譯後只能大體上還原原來java文件,而不能完全還原,特別是一些變數的取值,定義等..

3. java中.class文件反編譯過來的程序,如何讓他100%正確還原

不可能100%,因為存在不同的代碼會被編繹解釋成一樣的代碼這種情況,所以還原時沒辦法知道當初是怎麼寫的

4. java反編譯工具有哪些

1、 Java反編譯插件—Jadclipse
JadClipse是Jad的Eclipse插件,是一款非常實用而且方便地Java反編譯插件,我們只需將下載的插件包復制到eclipse的plugins目錄下,然後修改window -> Preferences -> Java -> JadClipse 下的Path to decompiler ,如:C:\pin\jadnt158\jad.exe,最後在Windows -> Perference -> General -> Editors -> File Associations中修改「*.class」默認關聯的編輯器為「JadClipse Class File Viewer」 即可。
2、 Java反編譯工具 —jad
jad是一款使用非常廣泛地Java反編譯工具,上面這款Jadclipse就是基於jad的反編譯插件,JAD 文件包含 MIDlet 套件的標題信息,例如開發應用程序的公司、應用程序名稱和大小。
3、 Java 反編譯器—JD-GUI
JD-GUI 是一個用 C++ 開發的 Java 反編譯工具,由 Pavel Kouznetsov開發,支持Windows、linux和蘋果Mac Os三個平台。而且提供了Eclipse平台下的插件JD-Eclipse。JD-GUI不需要安裝,直接點擊運行,可以反編譯jar,class文件。
4、 Java反編譯器—jdec
jdec是一個Java反編譯器。它能夠把出現在一個.class文件中的位元組碼還原成Java源代碼,反編譯的結果幾乎與原始Java文件相同。它還自帶一個利用swing開發的用戶操作界面。
5、 uuDeJava
uuDeJava是Java Class文件的反編譯工具。反編譯的Java源程序被輸出到Class的相同目錄。內部使用jad.exe。反編譯Class文件時,可以直接點擊Class文件(關聯後),或者選中文件或目錄發送到uuDeJava的快捷方式。還可以拖動文件或目錄到uuDeJava的主窗口。
6、 Java 反向工程軟體—Minjava
Minjava 是一個 Java 反向工程軟體,可幫助理解已存在一些 Java 軟體的架構和行為。
7、 Java Decompiler
這款反編譯器叫 「Java Decompiler」, 由 Pavel Kouznetsov開發,目前最新版本為0.2.5. 它由 C++開發,並且官方可以下載 windows、linux和蘋果Mac Os三個平台的可執行程序。
參考資料:http://www.kiwisec.com/news/detail/592e90c09a3e7a3fddc62db7.shtml

5. 教我怎樣 java反編譯可以嗎

反編譯的工具有好多, 在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI』s Java Class Viewer和國產的JAVA源代碼反編譯專家。
jad是java的反編譯工具,是命令行執行,反編譯出來的源文件可讀性較高。可惜用起來不太方便。還好

找到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復制到D:/leaf/eclipse/plugins目錄下。

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

3.啟動Eclipse後,在Windows(窗口)-->Perference(首選項)-->Java下面應該會多出一個JadClipse目錄,相關的設置可以在此修改配置jadclipse:設置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」默認關聯的編輯器為「JadClipse Class File Viewer」

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

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

反編譯工具jad簡單用法

以下假設jad.exe在c:/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

6. 我用反編譯文件將class編譯後成了java然後什麼都沒改結果沒法還原成class了

就拿目前最流行的反編譯工具jad來說,目前他也無法正常反編譯class中
關於try catch finally的部分,同時他的官方網站上也有說明他反編譯
的內容僅為java文件的主體流程,其中如果出現參數或方法名錯誤很正常
因此反編譯文件不能正常還原java.class很正常,這就是為什麼java有不開源
的程序,如果都可以反編譯class文件,那些不開源的豈不都是免費的了,因此該
工具僅能夠參考,不能夠照抄,希望對你有幫助

7. 如何把java的.exe程序還原成.jar文件是反編譯的話,那麼用什麼工具

exe不能還原成jar文件,兩者不是同一個概念,exe文件是調用jar文件。exe本身不包含任何jar

8. java反編譯代碼求大神復原

你給我jar包,我給你重新反編譯下

9. 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:\sootdir\是下載的soot類包放置的路徑,CLASSPATH末尾的.;代表了當前目錄,如果不加上這個的話Soot經常會報一個找不到類的錯誤。
DAVA是作為Soot的一個參數使用的,通常的用法如下:
Java soot.Main –f dava –d c:\javasource javatest
注意最後的類名不用帶.class後綴,因為它默認是處理class文件,這個操作與前述的JAD的參數效果相同。
DAVA採取了流程優化的方式進行反編譯,與傳統反編譯思路不盡相同,但卻對改變流程類的加密方法有獨特的反編譯效果。
上述的三種工具各有千秋,但效果都非常不錯。經測試,它們基本上都可以把JDK自帶的一些常式完全反編譯,然後不加任何修改可再編譯成功,並能正常運行!

10. ciass文件反編譯後成為了Java格式文件,然後怎麼把Java格式文件還原為ciass文件

cmd 里輸入: javac 文件名.java
cmd 的路徑要和 java文件一致,要不會找不到java文件。
cmd里輸入:java 文件名
是運行編譯後的java文件,也就是運行文件名.class文件。
例如:java文件名:Test;
cmd>javac Test.java 敲回車
OK 文件名為Test的java文件被編譯成了Test.class文件,該class文件和java文件在同一目錄下。

熱點內容
計算機存儲器分類方法 發布:2022-07-05 14:18:08 瀏覽:678
怎樣搭建文檔伺服器 發布:2022-07-05 14:18:07 瀏覽:650
手機如何查看已連接wifi密碼 發布:2022-07-05 14:16:46 瀏覽:886
銳刻綠豆冰沙怎麼配置 發布:2022-07-05 14:15:42 瀏覽:453
linux運維書籍推薦 發布:2022-07-05 14:10:00 瀏覽:818
微信不記得密碼手機換號了怎麼辦 發布:2022-07-05 14:02:45 瀏覽:533
伺服器訪問不了網站 發布:2022-07-05 14:02:11 瀏覽:31
sql返回值的存儲過程 發布:2022-07-05 13:58:58 瀏覽:230
管理linux文件 發布:2022-07-05 13:58:50 瀏覽:747
詛咒密碼聲望是哪裡的 發布:2022-07-05 13:57:44 瀏覽:919