posts - 0,  comments - 17,  trackbacks - 0

          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版本是1.5.8f,其運行界面如下圖:
          http://www.blogchina.com/resource/upload/pic/2006/03/17/264618335.1001.0161.jpg
          JAD是使用Microsoft Visual C++開發的,運行速度非??欤梢蕴幚砗軓碗s的JAVA編譯文件。眾多的參數使JAD可以靈活應付多種加密手段,令反編譯的代碼更加優化和易讀。由于JAD參數太多,沒必要一一解釋,其中有幾個最常用的如下:

          -d <dir> - 用于指定輸出文件的目錄

          -s <ext> - 輸出文件擴展名(默認為: .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環境下雙擊即可運行,其運行界面如下:

          http://www.blogchina.com/resource/upload/pic/2006/03/17/264618335.1002.0373.jpg
          需 要特別說明的是,JODE不是通過常規的Open->File的方式來加載JAVA編譯后的類文件(*.class)或是類包(*.jar)的,而 是通過在Options菜單中的Set Classpath來實現的,單獨的類文件可以將它的上一級目錄作為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

          新加入的類包或是類的名字會在左側窗口出現,雙擊類包名可以展開目錄樹結構,雙擊需要反編譯的類名則在右上角的窗口中直接顯示反編譯后的源代碼。

          三、 獨樹一幟的DAVA

          DAVA不是一個獨立的JAVA反編譯器,而是JAVA代碼優化工具Soot的一部分。Soot和JODE一樣是純JAVA開發的,也是一個獨立的JAR包,但卻不能通過雙擊直接運行,而是象JAD一樣在命令行狀態運行。
          http://www.blogchina.com/resource/upload/pic/2006/03/17/264618335.1005.09938.jpg
          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自帶的一些例程完全反編譯,然后不加任何修改可再編譯成功,并能正常運行!

          posted on 2007-12-17 11:11 xyz 閱讀(1185) 評論(0)  編輯  收藏 所屬分類: 網絡文摘

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          留言簿

          隨筆檔案(1)

          文章分類(44)

          文章檔案(46)

          收藏夾(1)

          Adobe

          AOP

          API

          appServer

          BI

          c

          • c-free
          • codeblocks
          • codelite
          • CodeLite IDE 是一個強大的開源,跨平臺的 C/C++整合開發環境. 支持包括 Windows、Linux 和 Mac 系統下運行
          • codelite官網
          • dev-c++
          • Dev-C++是一個C&C++開發工具,它是一款自由軟件,遵守GPL協議。
          • GCC
          • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理 C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言。

          Cache

          CMS

          DB

          eclipse

          FreeMarker

          hibernate

          html5

          ibatis

          java

          jquery

          js

          json

          Linux

          Log

          mail server

          mobile

          mysql

          oauth

          openID

          other

          PHP

          portal

          report

          Scheduler

          schema

          Security

          SOA

          spring

          struts

          UI原型設計

          w3c

          Wap

          webservice

          xml

          供應鏈管理

          博客鏈接

          好網站

          工作流

          開源網

          招聘

          插件下載

          操作系統

          構建可伸縮的系統

          構建工具

          測試

          • IETest
          • IE官網
          • OpenSTA
          • Siege
          • Siege是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力

          游戲

          源碼托管

          經營

          資源

          金融/財務

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 林周县| 阿瓦提县| 绍兴市| 蓬溪县| 定陶县| 南木林县| 临沭县| 科尔| 阿坝县| 盐亭县| 华坪县| 元江| 龙胜| 南涧| 星座| 屏东县| 石林| 澄城县| 冕宁县| 乐安县| 万安县| 遵化市| 射洪县| 汤阴县| 巴林右旗| 揭西县| 徐汇区| 芒康县| 崇阳县| 旬邑县| 神池县| 綦江县| 金塔县| 抚州市| 惠州市| 安顺市| 鲜城| 云林县| 云南省| 清水河县| 吉林省|