❶ 請教高手:java 反編工具 Decafe 有些CLASS文件無法反編
1,也許人家編程的時候設計了反編譯炸彈 就是在代碼中寫些廢代碼使你的反編譯工具死循環或者痴呆。
2,人家用了比較好的混淆器,或者自己做的混淆器,也達到了2的效果。
3,可能和版本有關
這個我沒遇到過 不過據說用jdk高版本編出來的class反編譯有問題
反編譯工具我通常用jad和jode 後者很久沒新版本了 至少2周前我還沒看到有新的
現在很多反編譯工具都用jad作為核心
我目前用的dj java decompiler 不錯 我試過在代碼中放一些邏輯炸彈,用dj也可以反編譯 並且效果還不錯。
不過只要用比較好的混淆器混淆過 沒有什麼反編譯工具能夠完全的破開,還要加不少的手動修改 挺麻煩的
❷ 如何將java中的.class文件反編譯
打開下載好的DJ_java_discompiler
選擇file,之後點擊open。之後出現以下界面。這里我選擇一個test.class文件。
如果以後想看.class文件的源碼,可以用這種方式查看。
❸ 怎麼反編譯java的class文件
工具:
DJ java discompiler.
方法:
打開DJ_java_discompiler,點左上角的file,選擇open。
❹ java問題:為什麼有些class文件反編譯不了
private 的屬性 方法不會被反編譯出來的。
還有就是某些class是作者用自己的編譯器編譯的.你也反編譯不出來
還有就是加密了.
❺ 如何將java中的.class文件反編譯
一、反編譯:下載一個jad
反編譯嘩卜工具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
二:修改、再編譯
用Eclipse新建工程,再將反編譯出的Java文件按原樣導入工程,就可以修改代碼。修改並調試後胡者,點擊Eclipse菜單中的文件→導出→Java→可運行的JAR文件褲蘆薯,選擇配置工程和導出路徑,然後點完成即可導出。
❻ 如何將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沒有參數可以去掉它,用別的辦法吧。
❼ 如何將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為例: 可以離線安裝也可以在線安裝。
❽ java如何降低class版本
使用低版本的jdk編譯,然後再運行,就相當於降低class版本