💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。
- 推薦:kwan 的首頁,持續學習,不斷總結,共同進步,活到老學到老
- 導航
- 檀越劍指大廠系列:全面總結 java 核心技術點,如集合,jvm,并發編程 redis,kafka,Spring,微服務,Netty 等
- 常用開發工具系列:羅列常用的開發工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
- 數據庫系列:詳細總結了常用數據庫 mysql 技術點,以及工作中遇到的 mysql 問題等
- 懶人運維系列:總結好用的命令,解放雙手不香嗎?能用一個命令完成絕不用兩個操作
- 數據結構與算法系列:總結數據結構和算法,不同類型針對性訓練,提升編程思維,劍指大廠
非常期待和您一起在這個小小的網絡世界里共同探索、學習和成長。💝💝💝 ?? 歡迎訂閱本專欄 ??
博客目錄
- 一.基礎介紹
- 1.什么是反編譯?
- 2.常見的 java 反編譯
- 3.Bytecode Viewer 介紹
- 4.Bytecode Viewer 特點和用途
- 二.bytecode-viewer
- 1.Github
- 2.啟動 jar 包
- 3.控制面板
- 4.反編譯
- 5.保存反編譯文件
- 6.搜索功能
一.基礎介紹
1.什么是反編譯?
反編譯(Decompilation)是指將已編譯的程序代碼(通常是機器代碼或字節碼)轉換回高級程序設計語言的過程。在軟件開發中,程序員通常使用高級編程語言編寫源代碼,然后通過編譯器將其轉換為機器代碼或字節碼,以便計算機能夠執行。反編譯的過程則是將這些機器代碼或字節碼還原回高級編程語言的過程。
反編譯可以幫助理解已編譯程序的結構和邏輯,但也可能涉及到法律和倫理問題,因為它可以用于逆向工程和潛在的盜版行為。因此,許多軟件的許可協議禁止反編譯。在一些情況下,反編譯也可能是合法和有用的,例如在修復軟件漏洞、進行逆向工程研究或進行安全審計的過程中。
2.常見的 java 反編譯
在 Java 中,由于 Java 源代碼被編譯成字節碼而不是機器代碼,因此相對容易進行反編譯。以下是一些常見的 Java 反編譯工具:
-
JD-GUI (Java Decompiler GUI): JD-GUI 是一個用戶友好的 Java 反編譯工具,它可以將 Java 的.class 文件反編譯成可讀的 Java 源代碼。用戶可以通過界面直觀地查看和瀏覽反編譯結果。
-
JAD (Java Decompiler): JAD 是一個比較早期的 Java 反編譯器,可以將.class 文件轉換為 Java 源代碼。雖然已經停止更新,但仍然被廣泛使用。
-
Fernflower: Fernflower 是一個開源的 Java 反編譯器,作為 JetBrains 的開源項目的一部分。它被設計為能夠處理復雜的 Java 代碼結構,并能夠還原出高質量的源代碼。
-
Procyon: Procyon 是另一個開源的 Java 反編譯器,支持將.class 文件反編譯為 Java 源代碼。它也可以處理一些復雜的 Java 特性,并且被一些開發人員認為是一個強大的工具。
雖然反編譯工具可以幫助開發人員理解和學習已編譯的代碼,但這些工具的使用應該遵守相關法律法規和軟件許可協議。在大多數情況下,未經授權的反編譯和使用可能會違反軟件的許可協議。
3.Bytecode Viewer 介紹
Bytecode Viewer 是一個用于查看、分析和修改 Java 字節碼的開源工具。它允許開發人員研究 Java 類文件的內容,查看其字節碼表示,并進行一些基本的編輯。
Bytecode Viewer 對于需要深入了解 Java 字節碼并進行調試、分析的開發人員是一個有用的工具。然而,需要注意的是,在修改和重新保存類文件時,可能會導致不穩定性和潛在的問題,因此謹慎使用是很重要的。
4.Bytecode Viewer 特點和用途
以下是 Bytecode Viewer 的一些主要特點和用途:
-
查看字節碼: Bytecode Viewer 允許用戶以直觀的方式查看 Java 類文件的字節碼表示。它提供了一個圖形用戶界面,讓用戶能夠輕松地瀏覽和理解字節碼指令。
-
反編譯: 工具內置了一些反編譯器,可以將 Java 字節碼轉換回可讀的 Java 源代碼。這使得開發人員可以更容易地理解和分析已編譯的 Java 程序。
-
修改字節碼: Bytecode Viewer 具有一些基本的字節碼編輯功能,允許用戶修改已編譯的類文件。這可以用于實驗性質的修改和調試,但需要小心以防止引入錯誤。
-
查看和編輯資源文件: 除了類文件,Bytecode Viewer 還允許用戶查看和編輯 Java JAR 文件中的其他資源,如圖像、文本文件等。
-
多種反編譯引擎支持: Bytecode Viewer 集成了多個反編譯引擎,包括 CFR、Fernflower 和 Procyon,使用戶可以選擇使用不同的引擎進行反編譯。
-
跳轉到源代碼: 當查看反編譯結果時,Bytecode Viewer 允許用戶跳轉到相關的源代碼,從而更方便地理解代碼的上下文。
二.bytecode-viewer
1.Github
bytecode-viewer
點擊 Releases 可以進行 jar 包下載,這個包不大,只有 63.4M。
2.啟動 jar 包
使用如下命令進行 jar 的啟動
java -jar Bytecode-Viewer-2.11.2.jar
3.控制面板
啟動成功后,可以看到彈出了一個應用窗口,在這個窗口中我們可以查看 jar 包的源代碼。
4.反編譯
首先我們導入一個 jar 包,看看效果。從結果我們可以看到源代碼的目錄結構。
5.保存反編譯文件
有時候我們想把反編譯的文件保存下來,方便自己以后查看,可以先保存下來。
6.搜索功能
可以搜索的的方式有很多,具體如下:
- 類名
- 正則
- 方法名
- 字段名
- 注解
通過搜類名得到的結果:
可以看到我們的結果,java 源代碼,非常清晰,在進行反編譯工作,了解別人的實現的時候意義重大。
覺得有用的話點個贊
👍🏻
唄。
??????本人水平有限,如有紕漏,歡迎各位大佬評論批評指正!😄😄😄💘💘💘如果覺得這篇文對你有幫助的話,也請給個點贊、收藏下吧,非常感謝!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且長,行則將至,讓我們一起加油吧!🌙🌙🌙