本文介绍下Java Jar常见的反编译工具,并给出使用感受。

反编译JAR能干什么: 排查问题、分析商业软件代码逻辑,学习优秀的源码思路。

JD-GUI

下载地址:http://java-decompiler.github.io/

点评:支持的java版本不会太高,中文注释能够正常显示。

微信截图_20200924230322.png

Luyten

下载地址:https://github.com/deathmarine/Luyten

点评: 支持Java版本更多,但是中文显示不正常,底层使用的是Procyon。

image-20200908203433404

Jadx

下载地址:https://github.com/skylot/jadx

点评:较为耗费系统的内存与资源,解析速度慢。

image-20200908203351573

Bytecode Viewer

下载地址:https://github.com/Konloch/bytecode-viewer

点评:大部分都能正常查看,也能够查看字节码指令,功能较全面推荐使用。

image-20200908202145928

Class Shark

下载地址:https://github.com/google/android-classyshark

点评: 测试两个jar都直接失败,放弃。

image-20200908202333017

综合点评

jd-gui.exe功能多但是支持java版本不太高,Luyten支持版本更多,但是中文显示不好。Bytecode Viewer也不错。Jadx强项在APK逆向方面,更吃资源。Class Shark使用未成功,你们看着办。

终极大招

实际上面的反编译的工具失败了,我们还可以利用Idea自带的反编译工具。

只需要新建一个Maven项目,在项目的pom中加入需要反编译的Jar包,groupId、artifactId、version可以随便写,pom.xml如下图所示。

<dependency>    <groupId>vip.codehome</groupId>    <artifactId>test</artifactId>    <scope>system</scope>    <version>1.0</version>    <systemPath>C:\\Users\\codehome\\Desktop\\{jar名称}.jar</systemPath></dependency>

image-20200908203626103