加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何动态反编译内存中的类对象?

发布时间:2020-12-14 19:20:08 所属栏目:Java 来源:网络整理
导读:我正在制作一个工具来动态显示运行java类的源代码.我需要一个工具来帮助我从类对象动态反编译到源代码的字符串.我知道一些反编译工具,如Jad,DJ反编译器可以反编译.class文件,但我希望工具可以: Class 我需要这样一个DecompileTool,有谁知道?谢谢 最佳答案

我正在制作一个工具来动态显示运行java类的源代码.我需要一个工具来帮助我从类对象动态反编译到源代码的字符串.我知道一些反编译工具,如Jad,DJ反编译器可以反编译.class文件,但我希望工具可以:

Class

我需要这样一个DecompileTool,有谁知道?谢谢

最佳答案
我不知道任何可以像这样使用的反编译器.

实际上,在一般情况下,不可能实现这样工作的反编译器:

>班级<?>从运行时获得的对象不提供任何获取字节码的方法.
>为了获取字节码,您需要重做类加载器在从类路径中找到“.class”文件时所执行的操作.
>我认为没有办法找出正在使用的类加载器…如果包含动态实例化类加载器的可能性. (此类类加载器在(例如)Web容器中是常规做法.)
>在一般情况下,类加载器将以您无法重现的方式执行此操作…无需逆向工程并将相同的逻辑硬编码到您的反编译器适配器代码中.

此外,在运行中执行此操作可能毫无意义,因为反编译器很可能会生成不可编译的源代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读