多读书多实践,勤思考善领悟

Java逆向基础之十一.反编译器

本文于1995天之前发表,文中内容可能已经过时。

java反编译

  • JD-GUI

http://jd.benow.ca/

  • DJ Java Decompiler

http://www.neshkov.com/dj.html

  • JADX 安卓jar dex反编译

https://github.com/skylot/jadx

  • Femflower,是著名 IDE Idea 的反编译器

https://github.com/fesh0r/fernflower

  • procyon 支持JDK8

https://bitbucket.org/mstrobel/procyon/downloads/

  • CFR

http://www.benf.org/other/cfr/

  • Luyten Procyon的GUI版本

https://github.com/deathmarine/Luyten

  • Enigma Procyon的GUI版本

http://www.cuchazinteractive.com/enigma/

  • Krakatau

https://github.com/Storyyeller/Krakatau

各反编译器比较

反编译器名称 支持JDK版本 最后更新时间
JD-GUI JDK 6 2015年9月,停更
DJ Java Decompiler JDK 6 2015年2月,停更
Femflower JDK 8 2018年2月,持续更新
procyon JDK 8 2015年8月,停更
CFR JDK 8 2018年1月,持续更新
Krakatau JDK 7 2018年3月,持续更新
  • 总结一下,一般的低版本的class拖进JD-GUI反编译就可以了,JD-GUI反编译不了的和JDK8的使用procyon/CFR/Femflower

procyon/CFR的反编译命令

1
2
java -jar procyon-decompiler-0.5.30.jar -jar iMybatis-3.58.jar -o output/
java -jar cfr_0_125.jar iMybatis-3.58.jar --outputdir output2/

kotlin反编译

Despector

https://github.com/Despector/Despector

这个先要运行gradlew.bat编译编译之后找lib里面的jar

反编译命令

1
java -jar despector-0.1.0-SNAPSHOT.jar --lang=kotlin  HelloKt.class outkt/