支持 Java 5 ~ 11主流版本
其他版本将陆续上线
class, interface, enum, Annotation, Inner Type, Anonymous type
normal, static, constructor, static block, lambda method
Type, Method, Parameter, Type parameter, Type argument, Local variable...
# | 特 性 | 已支持 | 实施中 | 备 注 |
---|---|---|---|---|
1 | Java version | Java 5-11 | Java 12-17 | Java 1.0.2, 1.1, 1.2, 1.3, 1.4,理论上支持,部分测试
Java 5-11,大规模测试,超过 10万 class Java 12-17,理论上90%支持,部分测试 |
2 | Declaration | 所有类型 class, interface, enum, Annotation
所有内部类型 Inner Type, Anonymous type 自由组合嵌套 |
Module, Package-info | |
3 | Type | 所有类型 primitive type, Object type, Generic type | - | |
4 | Statement | 所有语句类型 | - | |
5 | Method | 所有方法类型,包括lambda方法 | - | 为保证语法正确,部分编译产生内部方法不输出
例如:BRIDGE + SYNTHETIC 方法 |
6 | Annotation | 所有注解类型 Declaration, Type, Method, Annotation
Type parameter, Type argument, Parameter, Local variable |
- | 已知工具里支持最全 |
谁都不想遇到,但年年有人倒霉,试试 JDecode 吧,说不定能抢救回来
源码服务器坏了,硬盘坏了,手抖脑抽误删除了
古董系统,源码早没了,突然业务找你改个需求
有人根本没提交源码就离职了,有人删代码跑了
源码服务器中勒索病毒了
其他意想不到的的丢失源码场景......
生产故障,试过各种办法找不到原因,你百思不得其解,有没有可能:
你的源码和生产上编译的版本的不一样
你的代码没问题,第三方 jar 包有问题
你的代码没问题,中间件的 jar 包有问题
你的代码没问题,JRE 的 jar 包有问题
前三种站长都遇到过,印象深刻大概有几十次,多次靠反编译定位到问题
性能-内存优化
性能-速度优化
并发/锁优化
其他优化......
JVM 虚拟机和 JVM 规范
Java 内部机理
Java 语法糖的实现机制
更多学习方向......
本质上,因为 JVM 指令和 JAVA 是两种语言,JAVA 编译的过程不完全可逆。
细节上,主要原因有:
JAVA 语言等价性导致,如 for、while 可以等价,反编译不知道源码用的哪个
JAVA 语法糖导致,如 for each、switch string 等,反编译很难完美还原
JDK 编译优化导致,如常量替换、表达式压缩、语句压缩、方法压缩、字符串优化等
JDK 编译擦除导致,如泛型擦除、本地变量表擦除等
原因非常多和复杂,主要原因有:
JAVA 和 JVM 差异导致错误,有时正确反编译出来就是错的,如static块压缩的变量冲突
JAVA 语法糖和 JDK 编译优化太复杂,极少数场景无法正确还原
JDK 编译擦除,极少数场景无法正确处理变量和类型
错误有时候无法避免,只要错的有理有据,那便是极好的。
在线使用,先上传class,再下载反编译代码,然后有两种情景
【极大概率】代码正确,万事大吉
【很小概率】代码错误,需根据业务逻辑再修正
错误不可怕,只要容易改对就行。本站极力避免表面正确,实际和源class逻辑不符的情况
如果修复代码有困难,可以和我们联系.
在线工具 www.decompiler.com、www.javadecompilers.com
离线工具 JD-Core、JD-GUI、JAD、CFR、FernFlower、Procyon-Decompiler等等
这些工具站长都用过,希望有帮助。耿直的说,JDecode 比这些强多了
我是站长神经蛙,1999年开始接触 java,2005年接触反编工具,感觉非常有用,能解决不少问题,但工具就一直不太得力,深感不便
用过各种工具,反编成功率大致在七八成,代码稍微复杂点就给你来一个“INTERNAL ERROR”,只能一行行看操作码,眼睛都看瞎了
代码正确率更低,一般在五六成,复杂 class 就更惨不忍睹,错误又多又离谱,分析非常困难,让人头大如斗
一直寻找更好的工具,但一直求之不得,最后只好自己动手!就这么从一个小工具开始,经过多年开发和测试,逐步形成了 JDecode
到2020年,JDecode 终于超过同类,
反编译成功率和正确率这两个关键指标经数十万测试,目前暂居同类第一!
希望 JDecode 也能对各位高手有所帮助,那么站长绝对会深感欣慰、备受鼓舞!
JDecode 后续会持续更新,直到完美支持所有 Java 版本和功能为止 !
重要事项,敬请周知:
本站禁止用于任何非法活动
本站可以不注册使用,不收集、不跟踪、不保留任何访问信息
本站绝不查看、绝不保留用户上传文件,文件24小时内自动删除。用户使用遇到问题时授权本站查看除外
本站尽最大努力保护文件安全,使用多种加密手段提高安全级别,但安全无绝对。有特殊需要请联系站长
2012-2023 神经蛙,闭关十年,荣誉出品
©JDecode.net 保留一切权力
京公网安备 11011402012776号
京ICP备 2022020378号