2020年支持java8的Java反編譯工具匯總(推薦)
大多商業(yè)軟件,會對程序進行加密、加殼等安全措施以防范軟件被破解,從而使得反編譯越來越難。反編譯是一個對目標(biāo)可執(zhí)行程序進行逆向分析,從而得到源代碼的過程。尤其是像Java這樣的運行在虛擬機上的編程語言,更容易進行反編譯得到源代碼。
我們知道,在代碼支撐方面,JDK 1.7引入了字符串Switch、泛型接口改進等新功能,1.8增加了lambda表達式、方法傳遞、多重注解等新特性,這使得反編譯工具的編寫難度加大。今天我們盤點一下目前仍然可用的、相對功能很強大的Java反編譯工具(Eclipse插件不做評價),比較老的反編譯工具很難支持Java8及其以上版本。
1、Java 反編譯器 JD-GUI
JD-GUI 是一個用 C++ 開發(fā)的 Java 反編譯工具,由 Pavel Kouznetsov開發(fā),支持Windows、Linux和蘋果Mac Os三個平臺。而且提供了Eclipse平臺下的插件JD-Eclipse、IntelliJ的插件JD-IntelliJ。JD-GUI不需要安裝,直接點擊運行,可以反編譯jar,class文件。
最新版本1.4.0,官方網(wǎng)站:http://jd.benow.ca/?;蛘弑镜叵螺d地址:http://www.dbjr.com.cn/softs/66904.html
2、Java 反編譯器 procyon-decompiler及其window下獨立UI工具luyten
Procyon-Decompiler支持JDK1.8類的反編譯,在很多方面做得非常不錯,如反編譯匿名類、內(nèi)部類、Java8 Lambda等等。Procyon-Decompiler支持JDK1.8類的反編譯,在很多方面做得非常不錯:字符串的Switch、枚舉聲明方面、注解方面、匿名類、內(nèi)部類、Java8新接口規(guī)范、Java8 Lambda表達式、Java8 方法傳遞等。
luyten是Procyon的GUI,是一款操作簡單、功能實用的java反編譯工具,軟件支持*.JAR、*.zip、*.class等類型文件的反編譯操作,還原度非常高,支持更多功能設(shè)置,如顯式導(dǎo)入、類型、合成組件等等,用戶可根據(jù)不同的需求選擇合適的顯示項目,結(jié)果更明了。
luyten的最新版本0.53,官方網(wǎng)址:https://github.com/deathmarine/Luyten,只需要下載luyten即可,不用下載Procyon。Procyon最新版本0.5.30。
3、Android反編譯gui工具Jadx
jadx是一款A(yù)ndroid反編譯gui工具,它支持apk、dex、jar、class、zip、aar等文件。jadx操作方便,反編譯后的代碼可讀性高,同時還擁有較完善的gui界面,除去混淆部分的代碼,jadx已經(jīng)非常接近源代碼了。
Jadx最高版本v0.7.1,官方地址https://github.com/skylot/jadx/?;蛘弑镜叵螺d地址:http://www.dbjr.com.cn/softs/544428.html
三個工具中JD-GUI打開jar文件反編譯速度飛快、luyten次之、Jadx最慢(有時候需要等好一會,喝杯咖啡先)。三者都會遇到反編譯不出來的情況,建議配合使用。
到此這篇關(guān)于2020年支持java8的Java反編譯工具匯總(推薦)的文章就介紹到這了,更多相關(guān)支持java8的Java反編譯工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java gRPC攔截器簡單實現(xiàn)分布式日志鏈路追蹤器過程詳解
有請求的發(fā)送、處理,當(dāng)然就會有攔截器的需求,例如在服務(wù)端通過攔截器統(tǒng)一進行請求認(rèn)證等操作,這些就需要攔截器來完成,今天松哥先和小伙伴們來聊一聊gRPC中攔截器的基本用法,后面我再整一篇文章和小伙伴們做一個基于攔截器實現(xiàn)的JWT認(rèn)證的gRPC2023-03-03RocketMQ整合SpringBoot實現(xiàn)生產(chǎn)級二次封裝
本文主要介紹了RocketMQ整合SpringBoot實現(xiàn)生產(chǎn)級二次封裝,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Java 利用枚舉實現(xiàn)接口進行統(tǒng)一管理
這篇文章主要介紹了Java 利用枚舉實現(xiàn)接口進行統(tǒng)一管理,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02使用Java獲取系統(tǒng)信息的常用代碼整理總結(jié)
這篇文章主要介紹了使用Java獲取系統(tǒng)信息的常用代碼整理總結(jié),在服務(wù)器端一般經(jīng)常能夠用到,歡迎收藏,需要的朋友可以參考下2015-11-11Spring Boot 配置和使用多線程池的實現(xiàn)
這篇文章主要介紹了Spring Boot 配置和使用多線程池的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06利用Spring boot如何創(chuàng)建簡單的web交互應(yīng)用
這篇文章主要介紹了利用Spring boot如何創(chuàng)建簡單的web交互應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04