HOWTO · Java

Java 反編譯器

本文介紹如何使用 Java 反編譯器

decompiler 是一個實用程式,可幫助分析和反編譯 Java 位元組程式碼並從中生成原始碼。反編譯是編譯過程的完全相反的過程。這個過程在沒有原始碼的情況下是有益的,我們可以在反編譯位元組碼後除錯使用原始碼並分析其行為。

由於開發是使用整合開發環境(IDE)完成的,因此在 IDE 中擁有一個反編譯器是非常方便的。在免費提供的 IDE 市場中搜尋字串反編譯器,例如 Eclipse 或 Intellij。

對於 Intellij IDE,我們可以從市場下載外掛。一旦外掛到位,我們就可以在 maven 外掛下方的左側邊欄中找到反編譯器。下面是附加的截圖,以便更好地理解。

Intellij 中的反編譯器外掛

反編譯程式碼會自動轉換為原始碼,我們可以在目標資料夾中找到它。下面附上截圖以供理解。

目標資料夾中反編譯後的原始碼

將位元組碼轉換為原始碼的其他可用工具如下。

Java Decompiler 是一個帶有實際應用程式的線上 Web 服務。我們可以使用該實用程式反編譯任何 Java 5 和更高版本的程式碼。該服務提供了各種選項,我們可以在這些選項下從列表中選擇我們選擇的反編譯器。在此之下,我們有 JD-GUI,它是一個圖形實用程式,有助於轉換 .class 檔案以從中獲取 Java 原始碼。JD-Eclipse 是一個 Eclipse IDE 外掛,它允許在 IDE 本身中反編譯一個類檔案。JD-Core 是另一個開源實用程式,可以從位元組碼中重新建立原始碼。

另一個實用程式是 Procyon,主要用於程式碼生成和分析。它是一個開源實用程式,由 Apache 許可證 2 提供。它由核心框架、表示式框架、反射框架、編譯器工具集和反編譯器等庫組成。它具有促進從位元組碼生成程式碼的過程的效用。

有關更多詳細資訊,請訪問 GitHub 連結 -https://github.com/mstrobel/procyon

Krakatau 是另一種用於彙編和反彙編 Java 位元組碼的開源工具。該工具允許使用者將二進位制程式碼轉換為文字格式。它甚至允許使用者再次將原始碼重新轉換為位元組碼。該實用程式純粹是一個 Python 指令碼,它會在我們執行命令時執行。

更多細節通過 GitHub 連結 - https://github.com/Storyyeller/Krakatau

CFR 是另一個 Java 反編譯器,它允許反編譯 Java 14 版本的位元組碼。反編譯器程式碼純粹是用 Java 6 編寫的,易於執行。我們可以通過一個執行 jar 的命令來執行它,並在此處接受一個引數,即要反編譯的類名。

更多細節在連結上 - https://github.com/leibnitz27/cfr

Fernflower 是另一個仍在開發中的可用工具。該實用程式由 Apache 許可證 2 提供。執行命令就像執行帶有引數的 jar 一樣簡單。

欲瞭解更多詳情,請訪問 - https://github.com/fesh0r/fernflower

DJ Java Decompiler 是與 windows 及其後續版本相容的實用工具之一。該實用程式功能強大,足以從給定的位元組碼正確反編譯 Java 小程式程式碼。它是一個獨立的 Windows 應用程式,具有明確定義的圖形使用者介面。

欲瞭解更多詳情,請訪問 - http://www.neshkov.com/