通过代码实现java反编译

通过代码实现java反编译

  • Java代码反编译
    • 直接上地址
    • 说明

Java代码反编译

相信很多童鞋肯定是遇到过反编译Java代码的情况,我猜想你大部分情况下用的是JD-JUI或者说是Idea、Eclipse的一些插件,但是是否曾经想过如何用代码实现呢?

本文章不是讲字节码里面格式的,这样的文章网上一大片,随便搜索就能搜索出很多来~

直接上地址

可参考GitHub地址:https://github.com/shaozhuguang/java-decompiler

说明

我们的项目中确实有需求需要自己实现一下反编译,因为是在代码里面实现,并且最好是基于Maven的方式,因此经过调研,发现procyon 这个库还是很不错的,能实现JDK1.8的反编译处理。

procyon这个库有一个缺陷,就是没有针对InputStream或者byte[]的实现,都是针对.class或者具体类(由ClassLoader加载)的。

但在实际的场景中,例如我们的应用场景是区块链智能合约的可视化,该智能合约是通过Java语言写的(使用的是JDChain开源代码,地址:https://github.com/blockchain-jd-com/jdchain)。

可视化自然是显示源码,除了让用户上传源码之外,其它貌似就只有反编译了,并且这种类似于数据库的存储方式,明显不适合使用.class文件的解析方式,毕竟假设没有写文件权限可咋搞~

** 项目仍有很大改进空间,欢迎提意见~ **

另外,推广下底层消息传递框架:https://github.com/shaozhuguang/msg-transfer
保证让你用着非常爽~~~~

后续会提出通过代码进行编译的教程,敬请期待~

你可能感兴趣的:(Java)