免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版
打開APP
未登錄
開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服
開通VIP
首頁
好書
留言交流
下載APP
聯(lián)系客服
JAVA反編譯工具精選
duduwolf
>《編程》
2006.09.07
關(guān)注
目前,比較流行的JAVA反編譯工具有近30種,其中有三款堪稱精品:
一、 應(yīng)用廣泛的JAD
在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和國產(chǎn)的JAVA源代碼反編譯專家。
JAD本身是一個(gè)命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內(nèi)核的基礎(chǔ)之上加了一個(gè)圖形界面而已。這么多種產(chǎn)品的共同選擇,足可證明JAD在JAVA反編譯領(lǐng)域中的尊貴地位。
筆者用來測試的JAD版本是1.5.8f,其運(yùn)行界面如下圖:
http://www.blogchina.com/resource/upload/pic/2006/03/17/264618335.1001.0161.jpg
JAD是使用Microsoft Visual C++開發(fā)的,運(yùn)行速度非???,可以處理很復(fù)雜的JAVA編譯文件。眾多的參數(shù)使JAD可以靈活應(yīng)付多種加密手段,令反編譯的代碼更加優(yōu)化和易讀。由于JAD參數(shù)太多,沒必要一一解釋,其中有幾個(gè)最常用的如下:
-d <dir> - 用于指定輸出文件的目錄
-s <ext> - 輸出文件擴(kuò)展名(默認(rèn)為: .jad),通常都會(huì)把輸出文件擴(kuò)展名直接指定為.java,以方便修改的重新編譯。
-8 - 將Unicode字符轉(zhuǎn)換為ANSI字符串,如果輸出字符串是中文的話一定要加上這個(gè)參數(shù)才能正確顯示。
最常用的反編譯指令如下所示:
Jad –d c:\javasource –s .java -8 javatest.class
這條指令將當(dāng)前目錄下的javatest.class反編譯為javatest.java并保存在c:\javasource目錄里,其中的提示輸出為中文,而不是Unicode代碼。
二、 源碼開放的JODE
JODE是全球最大的開源項(xiàng)目網(wǎng)站Sourceforge.net的成員,不要以為源碼開放就小瞧它,在所有的JAVA反編譯器中,JODE的反編譯效果是最好的,尤其是對付一些常見的加密手段,例如混淆技術(shù)等,更是出類拔粹。
JODE本身也是純JAVA開發(fā)的,最近越來越多的JAVA反編譯軟件也選擇JODE來做它們的核心引擎,例如JCavaj Java Decompiler、BTJ (Back To Java)、jEdit‘s JavaInsight plugin等。
JODE是一個(gè)可運(yùn)行的JAR文件,在windows環(huán)境下雙擊即可運(yùn)行,其運(yùn)行界面如下:
http://www.blogchina.com/resource/upload/pic/2006/03/17/264618335.1002.0373.jpg
需要特別說明的是,JODE不是通過常規(guī)的Open->File的方式來加載JAVA編譯后的類文件(*.class)或是類包(*.jar)的,而是通過在Options菜單中的Set Classpath來實(shí)現(xiàn)的,單獨(dú)的類文件可以將它的上一級目錄作為Classpath輸入,然后再選擇Reload Classpath即可:
http://www.blogchina.com/resource/upload/pic/2006/03/17/264618335.1003.07741.jpg
http://www.blogchina.com/resource/u....1004.08813.jpg
新加入的類包或是類的名字會(huì)在左側(cè)窗口出現(xiàn),雙擊類包名可以展開目錄樹結(jié)構(gòu),雙擊需要反編譯的類名則在右上角的窗口中直接顯示反編譯后的源代碼。
三、 獨(dú)樹一幟的DAVA
DAVA不是一個(gè)獨(dú)立的JAVA反編譯器,而是JAVA代碼優(yōu)化工具Soot的一部分。Soot和JODE一樣是純JAVA開發(fā)的,也是一個(gè)獨(dú)立的JAR包,但卻不能通過雙擊直接運(yùn)行,而是象JAD一樣在命令行狀態(tài)運(yùn)行。
http://www.blogchina.com/resource/upload/pic/2006/03/17/264618335.1005.09938.jpg
Soot對環(huán)境變量的配置要求非常嚴(yán)格,通常情況下要對CLASSPATH做如下設(shè)置:
Set CLASSPATH=%CLASSPATH%;c:\sootdir\sootclasses-2.1.0.jar;.;
其中的c:\sootdir\是下載的soot類包放置的路徑,CLASSPATH末尾的.;代表了當(dāng)前目錄,如果不加上這個(gè)的話Soot經(jīng)常會(huì)報(bào)一個(gè)找不到類的錯(cuò)誤。
DAVA是作為Soot的一個(gè)參數(shù)使用的,通常的用法如下:
Java soot.Main –f dava –d c:\javasource javatest
注意最后的類名不用帶.class后綴,因?yàn)樗J(rèn)是處理class文件,這個(gè)操作與前述的JAD的參數(shù)效果相同。
DAVA采取了流程優(yōu)化的方式進(jìn)行反編譯,與傳統(tǒng)反編譯思路不盡相同,但卻對改變流程類的加密方法有獨(dú)特的反編譯效果。
上述的三種工具各有千秋,但效果都非常不錯(cuò)。經(jīng)測試,它們基本上都可以把JDK自帶的一些例程完全反編譯,然后不加任何修改可再編譯成功,并能正常運(yùn)行!
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)
。
打開APP,閱讀全文并永久保存
查看更多類似文章
猜你喜歡
類似文章
Java 反編譯工具幾枚(class轉(zhuǎn)java)
Eclipse反編譯插件: Jodeclipse與JadClipse - XiaoLi’s Blog - BlogJava
Java反編譯利器
學(xué)會(huì)java反編譯的必備神器
Java反編譯工具Jad詳解
在eclipse中安裝反編譯工具
更多類似文章 >>
生活服務(wù)
首頁
萬象
文化
人生
生活
健康
教育
職場
理財(cái)
娛樂
藝術(shù)
上網(wǎng)
留言交流
回頂部
聯(lián)系我們
分享
收藏
點(diǎn)擊這里,查看已保存的文章
導(dǎo)長圖
關(guān)注
一鍵復(fù)制
下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!
聯(lián)系客服
微信登錄中...
請勿關(guān)閉此頁面
先別劃走!
送你5元優(yōu)惠券,購買VIP限時(shí)立減!
5
元
優(yōu)惠券
優(yōu)惠券還有
10:00
過期
馬上使用
×