Java 反編譯器

Rashmi Patidar 2021年6月30日
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/

作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn