KALI LINUX 工具大全---jd-gui(爪哇反編譯器-圖形界面)


 

一款高度還原java的開源獨立反編譯器---具有圖形化界面

 

官網:http://java-decompiler.github.io/

 

第一印象

logo:

 

軟件截圖:

網站截圖


 

 

相關介紹

下載:官網直接下載,注意有薔。https://github.com/java-decompiler/jd-gui/releases、https://github.com/java-decompiler/jd-core

   https://github.com/java-decompiler/jd-eclipse/releases

存儲庫:github(https://github.com/java-decompiler

版本:JD-Core,JD-GUI、JD-Eclipse,windows、linux、osx

     JD-GUI是一個獨立的圖形實用程序,顯示“ .class”文件的Java源代碼。您可以使用JD-GUI瀏覽重建的源代碼,以立即訪問方法和字段。

     JD-Eclipse是Eclipse平台的插件。它允許您在調試過程中顯示所有Java源代碼,即使您沒有全部源代碼也是如此。

     JD-Core是一個“ .class”文件重構Java源代碼的庫文件。JD-Core可用於恢復丟失的源代碼並探究Java運行時庫的源碼。支持Java 5的新功能,例如注釋,泛型或“枚舉”類             型。JD-GUI和JD-Eclipse都包含JD-Core庫。

版本日期:1.6.6(2019.12.25)

編寫語言:java

兼容性:優,與當前絕大多數編譯器兼容,其中包括:

  • JDK 1.1.8, JDK 1.3.1, JDK 1.4.2, JDK 1.5.0, JDK 1.6.0, JDK 1.7.0, JDK 1.8.0, JDK 9.0.1, JDK 10.0.2(Oracle JVM收購自sun的正統)
  • jrockit90_150_06(Oracle 優化的JVM)
  • jikes-1.22(IDM JAVA)
  • harmony-jdk-r533500(apache jdk 已廢棄,我怎么突然看到了鴻檬,雖然不是華偉的鴻檬,但是我猜測有可能基於這個JDK開發的,因為安卓早間也是用的Oracle JVM開發的,被Oracle告,被強行收取了一波官司費,不過現在的安卓雖然是基於jdk的但是核心代碼沒有用Oracle 的,而是自己實現的,除了api接口還是用Oracle 的,其余代碼都實現了私有,其實安卓核心來講就是 改的面目全非的linux+私有JDK+私有驅動程序+在JDK上運行的APK,apk的本質還是java,安卓的核心代碼都沒有開源,只是開源了開發要用到的東西,沒有完全開源的軟件我個人認為就是閉源的,為什么安卓基於linux開發的系統卻可以不開源,谷鴿很雞賊,為了避免開源,安卓在linux上自己實現了一套系統調用,這個系統調用就必須開源,這樣在linux系統上的軟件就不用開源了,因為安卓本質上就不是操作系統,是一個中間層,類似java一樣,也正因如此才可以想卡誰的脖子卡誰的脖子。為什么要沿用類java來構建安卓,因為Java起初就是為嵌入式而開發的軟件,java生態環境已相當成熟,基於java可以省好多事,安卓只要專注於界面就好了。手機開源操作系統絕對不是安卓一家,隨着安卓的不斷閉源,將有其他的開源自由手機操作系統隨之崛起)
  • Eclipse Java Compiler v_677_R32x, 3.2.1 release

文檔:無

源作者:Emmanuel Dupuy

開源 是

版權 GPLv3

盈利方式:捐贈

優點:jd-gui的最強大的地方就是引擎jd-core十分強勁,准確且快。在遇到錯誤時會注釋匯編代碼的形式展示錯誤內容。還有一個較為直觀的界面,用java開發具有了跨平台特               性,主流操作系統都可以使用。

缺點:功能較為單一,只能反編譯后查看源碼內容

 

快速上手

jd-gui支持的格式有aar、class、ear、jar、java、jmod、log、war、zip、kar

JD-GUI的安裝方式

   免安裝,要先裝好java環境

JD-Eclipse的安裝方式

  1. 下載JD-Eclipse ZIP文件,
  2. 啟動Eclipse,
  3. 點擊“幫助>安裝新軟件...”
  4. 在對話框窗口中拖放ZIP文件,
  5. 選中“ Java Decompiler Eclipse插件”
  6. 點擊“下一步”和“完成”按鈕,
  7. 由於未簽名“ org.jd.ide.eclipse.plugin_x.yzjar”,因此出現警告對話框單擊“仍然安裝”按鈕。

使用方法

  JD-GUI程序雙擊執行或命令行執行 "java -jar jd-gui-x.y.z.jar" 或 "java -classpath jd-gui-x.y.z.jar org.jd.gui.App",前提是系統要裝有java環境。直接打開目標文件或拖放。使用非常直觀,代碼中的下划線就是交叉引用的下文,就是被調用者的地方。刪除所有文件即可卸載

 

詳細講解

如何源碼構建JD-GUI?

> git clone https://github.com/java-decompiler/jd-gui.git
> cd jd-gui
> ./gradlew build 

生成文件到:

  • "build/libs/jd-gui-x.y.z.jar"
  • "build/libs/jd-gui-x.y.z-min.jar"
  • "build/distributions/jd-gui-windows-x.y.z.zip"
  • "build/distributions/jd-gui-osx-x.y.z.tar"
  • "build/distributions/jd-gui-x.y.z.deb"
  • "build/distributions/jd-gui-x.y.z.rpm"

如何擴展JD-GUI插件?

> ./gradlew idea 

生成Idea Intellij項目

> ./gradlew eclipse

生成Eclipse項目

> java -classpath jd-gui-x.y.z.jar;myextension1.jar;myextension2.jar org.jd.gui.App

使用您的擴展程序啟動JD-GUI

 

擴展閱讀

  衡量一個反編譯查看器是否優秀的唯一標准就是反編譯 引擎/內核/核心 能否高度還原出源碼(以后統一叫引擎)其次支持的二進制文件格式是不是夠多、支持大文件、多引擎支持、是否跨平台、有沒有圖形界面、是否直觀易讀(語法高亮、目錄層級顯示、顯示調試信息比如代碼行或源文件名、注解等等)、是否具有一定容錯性(不要反編譯一半就掛了)、是否開源、有沒有交叉引用(調用者和被調用者)、強大的搜索功能、是否可編輯(目前的反編譯器都不可編輯,不能直接編輯源碼或二進制代碼),有沒有調試功能、是否具有可擴展性(比如添加自己的反編譯支持格式等)。

什么是編譯、鏈接、執行、

  百毒知道

什么是反編譯器和反匯編器

  百毒知道

什么是調試器和反調試

  百毒知道

什么靜態分析和動態調試

  百毒知道

什么是反調試和反反編譯和加固和加殼和混淆

  反調試就是阻礙調試進程的內容,加固指定的就包含反調試、反反編譯、加密字符串等一切阻礙反編譯進行的技術。加殼就加固的一種快速方法,可以瞬間保護可執行代碼無需提供源碼。混淆也是一種加固方法,指的是將字符串加密、函數名隨機化、函數結構扁平化的初步加固處理。

什么調試信息和代碼行

  在編譯完成后會存留有多余代碼,方便調試使用。其中有個信息是代碼行,它反映了這行代碼在源碼中的大致位置。

什么GUI和CLI

  百毒知道

什么獨立軟件

  獨立軟件就是不依賴任何第三方軟件的軟件,包括核心和GUI

常見的反編譯器有哪些?

  JD-Core 、CFR、Dava、FernFlower、JaDx、Jode、Krakatau、Procyon

什么是java、jdk、jre、字節碼?

  百毒知道

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM