jjzjj

decompiling

全部标签

java - class文件到java文件的转换

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。如何从类文件(即编译文件)中获取java文件(即源代码)?

java - 将 Java 字节码翻译成其他表示和编程语言

我正在寻找将Java字节码翻译成其他编程语言的方法/工具/项目,或者如果失败,至少将其翻译成结构化表示(如XML)。理想情况下,开源是自然而然的。我看过ASM,“字节码操作和分析框架”。它不支持转换为其他表示形式,但看起来是此类项目的良好基础。可悲的是,他们的userspage上没有列出任何项目。接近。 最佳答案 ASM有treeapi,它基本上可以为您提供字节码的完整结构。似乎很容易使用它甚至访问者api以XML或其他格式打印出来。不确定那有什么用。翻译回Java是反编译器的工作,像Jad这样的人做得很好。但这很难,因为a)在将源

java - JADClipse 不适用于 Eclipse 3.6

Jadclipse是否适用于Eclipse3.6?我通过将jar复制到plugins目录并重新安装eclipse,在我的Eclipse3.6上安装了Jadclipse3.3.0。现在我在Windows->Preferences下有jadclipse菜单,但是当试图反编译任何类时,它根本不会反编译。我得到通常的eclipse屏幕说来源不可用。错误日志中没有错误。有什么想法吗? 最佳答案 我终于找到了答案here.使用-clean开关运行eclipse并设置*.class和jadclipse插件之间的文件关联解决了这个问题。

描述符和签名属性之间的Java内部类不一致? (类文件)

我正在尝试了解规范中是否存在内部类的Java描述符和签名之间存在差异的原因。(我这里是直接看类文件的内容,但是我用javap来说明)。(n.b.我已经在J​​DK1.6.0_33和1.7.0_05上尝试过,使用Java7的javap查看时-java6的javap似乎没有显示任何通用的问题签名信息,根据下面肖恩的回答。)更新:感谢那些讨论-我的看法是描述符(不包含一般信息)是正确的。签名(它是方法的一个属性,确实包含通用信息)不正确。方法的SIGNATURE的相关ConstPool条目是“ConstantUTF8[(Ljava/util/list)V]”Java6中的Javap不看签名,

java - 如何在不访问源代码的情况下调试 Java 应用程序?

我需要调试一个没有源代码的Java应用程序。它在Jetty服务器上本地运行。使用JD-GUI反编译工作正常。通过套接字连接或共享内存附加JDB也能正常工作。我失败的地方是将各个部分拼接在一起。我主要尝试了带有JD-Eclipse插件和远程调试的Eclipse。我找不到将调试器成功附加到正在运行的进程的方法。一切似乎都假设我至少有部分应用程序可以作为项目中的源代码使用,但我没有。它是一个相当大的应用程序(200+MiB的JAR文件和500+MiB的其他东西)所以尝试从所有反编译的类构建一个项目并让它运行不是一个选项,除非它很容易自动化。我真正需要的是能够将调试器附加到正在运行的进程、查看

适用于 Java 5 的 Java 反编译器(处理枚举等新事物)

我知道这个问题已经被问过无数次了,但我特别关注一个可以正确处理枚举的反编译器(因为我正在反编译的jar大量使用枚举)。我测试了JAD和JD-GUI都没有。有人可以推荐一个反编译器(最好是在Linux下工作并且可以轻松处理整个jar而不需要我编写shell脚本)?编辑:具体来说,我对以下结构有疑问:switch(myEnum){caseA:...caseB:...}它们被反编译(对于JAD和JD-GUI)如下:switch($SWITCH_TABLE$com$MyType()[myEnum.ordinal()]){case1:case2:}其中$SWITCH_TABLE$com$MyTy

java - 如何读取.class文件?

这个问题在这里已经有了答案:HowcanIopenJava.classfilesinahuman-readableway?(17个答案)关闭9年前。我需要在我的java程序中读取java的.class文件的内容或者是否有任何方法可以读取相同的内容。实际上我想从.class文件中检索局部变量表,行号表等java但我没有任何方法来读取它?

java - IDEA 14. 反编译我自己的类(从输出目录)

我想查看从我自己的来源生成的代码,但IDEA似乎没有使用新的fernflower插件反编译它们,而是使用IntelliJAPI反编译器。至少我有标题注释//IntelliJAPIDecompilerstubsourcegeneratedfromaclassfile//Implementationofmethodsisnotavailable和类似的方法:publicvoidupdate(){/*编译代码*/}同时,在外部库(例如JDK)中,我看到了正常的头文件和反编译代码。//Sourcecoderecreatedfroma.classfilebyIntelliJIDEA//(powe

java - 重新编译包含 goto 指令的反编译 Java (JD/JAD) 源代码

(相关问题:JavacompilersorJVMlanguagesthatsupportgoto?)我已经反编译了一个jar(合法地,用于调试目的)并想重新编译它。我都用过JAD和JD由于goto指令,两者都无法编译例如goto_L1...L1:returntrue;有没有简单的方法(或任何方法)重新编译它?(除了手动重构和删除goto的) 最佳答案 不,没有。在您的情况下,JD和JAD都无法正确反编译类文件。“goto”语句是关于实际程序流程的提示。你可以直接联系JavaDecompiler团队,发一个class文件反编译出来的源

java - Fernflower Java反编译器帮助

由于作者忘记添加详细的用法列表(或者我找不到它),我想知道是否有人知道FernFlower反编译器应用程序接受的命令行选项。您可以在此处找到在线版本:http://www.reversed-java.com/fernflower/我正在尝试启用/禁用该网页上存在的所有这些标志。实际的命令行JAR可以在这里找到:https://github.com/Bukkit/Bukkit-MinecraftServer非常感谢尼克 最佳答案 Astheauthorhasforgottentoaddadetailedusagelisting不,我没