本文介紹下Java Jar常見的反編譯工具,並給出使用感受。
反編譯JAR能幹什麼: 排查問題、分析商業軟體程式碼邏輯,學習優秀的原始碼思路。
JD-GUI
下載地址:http://java-decompiler.github.io/
點評:支援的java版本不會太高,中文註釋能夠正常顯示。
Luyten
下載地址:https://github.com/deathmarine/Luyten
點評: 支援更多,但是中文不正常顯示。底層使用的是Procyon。
Jadx
下載地址:https://github.com/skylot/jadx
點評:卡了很長時間都沒顯示解析完,很耗記憶體與時間。
Bytecode Viewer
下載地址:https://github.com/Konloch/bytecode-viewer
點評:大部分都能正常檢視,也能夠檢視位元組碼指令。
Class Shark
下載地址:https://github.com/google/android-classyshark
點評: 測試兩個jar都直接失敗,放棄。
綜合點評
jd-gui.exe功能多但是支援java版本不太高,Luyten支援版本更多,但是中文顯示不好。Bytecode Viewer也不錯。Jadx強項在APK逆向方面,更吃資源。Class Shark使用未成功,你們看著辦。
終極大招
實際上面的反編譯的工具失敗了,我們還可以利用Idea自帶的反編譯工具。
新建一個Maven專案,在專案的pom中加入需要反編譯的Jar包,groupId、artifactId可以隨便寫。
<dependency>
<groupId>vip.codehome</groupId>
<artifactId>test</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>C:\\Users\\codehome\\Desktop\\{jar名稱}.jar</systemPath>
</dependency>