当前位置: 首页 > 知识库问答 >
问题:

如何在内存上动态反编译类对象?

乌俊健
2023-03-14

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

Class<?> c = ..; // get from runtime environment
String sourcecode = **DecompileTool**.decompileClassObject(c);
return sourcecode;

我需要这样的反编译工具,有人知道吗?谢谢

共有1个答案

艾飞宇
2023-03-14

我不知道任何反编译程序可以这样使用。

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

>

  • 从运行时获得的class<?>对象不提供任何获取字节码的方法

  •  类似资料:
    • 我正在重新编写这个问题,因为我认为原文不太清楚。 基本上,我有一个“wrapper”指令,在该指令中,我试图动态地将属性添加到一个已包装(转包)的元素中。我可以让它工作,但Angular似乎不知道一旦添加了新属性。 如果我使用,Angular确实可以识别它们——但代价是加倍编译转置的内容,在这种情况下,它会加倍标记中的

    • 问题内容: 我可以使用什么程序反编译类文件?我实际上会得到Java代码,还是仅仅是JVM汇编代码? 关于此站点上的Java性能问题,我经常看到“反编译” Java类文件以了解编译器如何优化某些东西的人们的回答。 问题答案: 有一些反编译器…快速搜索结果: Procyon: open-source (Apache 2) and actively developed Krakatau: open-so

    • 问题内容: 我正在使用 Ubuntu 10.10 这就是我所做的。 Hello.java : 然后我运行以下命令: 我已获得和。 您好 : 然后我创建了 Hello.cpp : 现在我认为我搞砸了。我从本指南(“ 编译动态或共享库” 部分)中 得到了 启发 : __ 生成文件 但是当我尝试运行它时,出现以下错误: 我什至尝试了这个: 没有结果。 我知道我在做一些非常愚蠢的事情,但我不知道这是什么。

    • 问题内容: 我如何在运行时从字符串生成字节码(Byte []),而无需使用“ javac”进程或类似的东西?有没有像这样调用编译器的简单方法? 以后添加: 我选择接受最适合 我的 情况的解决方案。我的应用程序是一个尚处于设计草图阶段的业余项目,现在是考虑插入新技术的合适时机。另外,由于应该帮助我解决BL的人是JavaScript开发人员,因此在这种情况下,使用JavaScript解释器而不是存根编

    • 我正在构建一个AWS Lambda函数,它可以动态编译一个类。但是lambda函数抛出错误,因为它无法定位依赖项,即动态编译的类的导入语句。我已经给出了所遵循步骤的示例代码。 请指导我如何定位依赖项,即设置类路径,以便动态创建的类编译时不会出现任何错误 > 正在编译的示例代码 JavaCompilerCode 格拉德尔一个胖罐子 执行lambda函数时出错 要编译的文件保存在 /tmp目录中。我无

    • 我正在反编译一个谷歌chrome扩展,因为它看起来很可疑。扩展是用javascript编写的,但有人能告诉我像这样的符号到底是什么,以及如何将它们“翻译”回正常的字符串吗? “\x63\x68\x61\x72\x43\x6F\x64\x65” 完整文件的Jsbin:http://Jsbin.com/onevira/1/