當前位置:首頁 » 編程軟體 » 反編譯顯示java

反編譯顯示java

發布時間: 2023-05-16 16:55:47

❶ 談談java的反編譯

作者因最近分析一些JAVA程序 對JAVA的反編譯進行了一番了解 下面將我所了解的情況作以下介紹 希望對JAVA愛好者有所幫助 JAVA是採用一種稱做 位元組編碼 的程序結構 分為小程序(嵌入到HTML文件中)和應用程序(直接在命令狀態下執行)兩種類型 無論哪種結構 一旦用JAVAC 命令編譯後 均變成後綴為CLASS的同名可執行文件 這種文件是不可閱讀的代碼 經查閱了SUN公司的JDK(JDK )文檔資料後 我找到了一個據稱是可反編譯JAVA的JAVAP文件(EXE) 這個文件位於JDKBIN 下面 經按說明使用後 感到失望 原來這個 反編譯 僅可反編譯出JAVA程序的數據區(定義) 若干方法和類的引用等 這里我用了一個簡單例子來說明問題 JAVA的源程序hello_java java如下 import java applet *;import java awt *;public class hello_java extends Applet{public void paint(Graphics g){g drawString( Hello Java!n );}} 經用反編譯命令 javap c package public private hello_java hello java 得到的反編譯結果(hello java)如下 (有關javap命令的選擇參數請見其使用說明 這里 c表示選擇了反編譯)Compiled from hello_java javapublic synchronized class hello_java extends java applet Applet /* ACC_SUPER bit set */{public void paint(java awt Graphics);public hello_java();Method void paint(java awt Graphics) aload_ ldc # bipush bipush invokevirtual # returnMethod hello_java() aload_ invokespecial # ()V > return}從上述結果不難看出該反編譯未能將源程序全譯出來 像語句g drawString( Hello Java!n ); 就沒有 隨著程序量增加 未能編譯的JAVA語句還會更多 所以這個反編譯程序僅能起個參考作用 幸虧有了INTERNET 筆者通過YAHOO很快找到了一個JAVA反編譯 自由軟體 (SHAREWARE) 這個軟體叫MOCHA 據說是一位 來歲的加拿大的研究生所完成 僅是個 ? 版 原因是這位叫做H P VAN VLIET的小夥子患癌逝世了 十分可惜呀!經使用MOCHA反編譯軟體 感到這個軟體十分好用 筆者試反編譯多個JAVA程序 均得到很好的結果 這里給出如何使用這個軟體 首先 用WINZIP等將 mocha b zip 解開得到 mocha zip 文件 mocha zip 不須再解開 這個包內包括了反編譯的類文件 只需將其拷貝到JDK所在的目錄下 如 c:jdkbin 此外 須設置路徑 SET CLASSPATH=c:myclasses;c:jdkbinmocha zipMOCHA用法 java mocha Depiler [ v] [ o] Class class Class class java 調用Java虛擬機 mocha Depiler 指示要進行JAVA反編譯 v 選擇詳細輸出 o 選寫入已有的 mocha 文件 ClassX class 指出要反編譯類名注意 不需給出輸出的JAVA文件名 因為MOCHA自動產生一個與CLASS同名但擴展名為MOCHA的JAVA源文件 對於上例 可用命令 java mocha Depiler [ v] [ o] hello_java class得到的源文件 /* Depiled by Mocha from hello_java class *//* Originally piled from hello_java java */import java applet Applet;import java awt Graphics;public synchronized class hello_java extends Applet{public void paint(Graphics g){g drawString( Hello Java!n );}public hello_java(){}}我們不難發現 此文件與編譯前的JAVA源文件完全一樣!筆者曾經用MOCHA反編譯出最大為 K的源文件 均取得成功 在此 筆者向英年早逝的VLIET表示敬意 感謝他給我們留下這個工具軟體 如讀者下載MOCHA有困難 可給筆者來電子郵件 筆者可將MOCHA寄去 參考文獻 ) ) ) ) lishixin/Article/program/Java/Javascript/201311/25331

❷ java的反編譯怎麼使用,說具體點

1.下載jad1.5.8e
http://www.kps.com/jad.html#download
下載後解壓。解壓縮後將jad.exe拷貝到JRE的bin目錄下,如\Java\jre1.5.0_06\bin

2.下載 jadclipse_3.1.0.jar
http://jaist.dl.sourceforge.net/sourceforge/jadclipse/jadclipse_3.1.0.jar
將jadclipse_3.1.0.jar復制到D:\Program Files\eclipse\myplugin\eclipse\plugins目錄下(用的是

link方式安裝插件的)。

3.啟動Eclipse後,在Windows-->Perference-->Java下面應該會多出一個JadClipse目錄,相關的設置可

以在此修改
配置jadclipse:設置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」默

認關聯的編輯器為「JadClipse Class File Viewer」
5、安裝完成,雙擊class文件,Eclipse將自動反編譯了。

❸ 怎麼把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插件(版本自己選擇)直接到Eclipse目錄中的plugins文件夾下,然後打開Eclipse,選擇"窗口"-"首選項"-"常規"-"編輯器"-"文件關聯",點擊文件關聯中的*.class,下面就會看到"JadClipse Class File Viewer",選中它,點擊預設值,點擊OK,將它設置為默認的類查看器。如圖:

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

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

❺ 什麼是Java代碼的編譯與反編譯

Java代碼的編譯與反編譯

2017-02-21Hollis數盟

一、什麼是編譯

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

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

二、什麼是反編譯

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

三、Java類的編譯與反編譯

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

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

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

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

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

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

五、反編譯工具

1、javap

2、Jad:官網(牆裂推薦)

客戶端:

可以在官網下載可執行文件,找到對應的操作系統的對應版本,然後進行安裝使用。

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

Eclipse插件:

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

❻ 如何通過反編譯工具與插件 查看java *.class 文件源碼

1、JD-GUI

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

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

舉例:通過 jd-gui.exe 工具 查看 xUtils-2.6.14.jar 包 源碼:

但是,一般開發用的是IDE(Integrated Development Environment 集成開發環境)
比如 Eclipse,android
studio。IDE一般插件都很豐富,方便提高開發效率。如果有IDE還是用圖形界面工具查看jar包而不用插件的話,這是比較醉的,由於之前不知道用插件,醉了很久才用!!沒文化真可怕啊!插指算了算:以後要「多探討,多接觸,增加知識的廣度!多研究,多細學,增加知識深度!」
。下面概要介紹 Eclipse,android studio 下 安裝插件,查看 jar包 *.class 文件。

❼ 如何把apk反編譯成java代碼

一、找到apk中的class.dex:
把apk文件改名為.zip,然後解壓縮其中的class.dex文件,它就是java文件編譯再通過dx工具打包成的。

1、把class.dex拷貝到dex2jar.bat所在目錄,直接拖動class.dex到dex2jar.bat,生成classes.dex.dex2jar.jar。
或者:1.在cmd下進入dex2jar.bat所在路徑,然後輸入「dex2jar.bat XXX」,XXX指的是你要反編譯的apk中的classes.dex文件所在路徑及名稱,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路徑下, classes.dex在D:\Android下,所以: 你進入dex2jar.bat路徑下後,輸入dex2jar.bat D:\Android\classes.dex,這樣會生成一個jar文件。

2.用rar解壓出jar文件中的class文件,然後用jad或DJ Java Decompiler反編譯工具將.class文件反編譯成.java文件

3、運行JD-GUI工具,打開上面的jar文件,在File下有個Save JAR Source,它可以生成src源代碼。

熱點內容
蘋果電話為什麼打不開密碼 發布:2025-07-14 15:33:45 瀏覽:42
安卓如何取消短消息通知 發布:2025-07-14 15:30:54 瀏覽:371
輿情監測演算法 發布:2025-07-14 15:29:19 瀏覽:13
android搜索聯系人 發布:2025-07-14 15:27:34 瀏覽:332
省唄上傳學歷 發布:2025-07-14 15:21:54 瀏覽:633
linux伺服器tomcat 發布:2025-07-14 15:19:41 瀏覽:191
東風風神奕炫max怎麼配置 發布:2025-07-14 15:13:44 瀏覽:746
蘋果安卓不知道到底怎麼選 發布:2025-07-14 15:07:52 瀏覽:925
資料庫spl 發布:2025-07-14 15:05:22 瀏覽:436
手機存儲中照片被刪除了咋辦 發布:2025-07-14 14:57:45 瀏覽:987