首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAD反编译问题

JAD反编译问题
EN

Stack Overflow用户
提问于 2013-12-04 04:57:18
回答 1查看 1.7K关注 0票数 3

我有一个.class文件,我想解压缩它。我尝试了JAD,但是它导致了通常的中断、goto和返回语句,这导致了JAD生成的源代码中的编译错误。我很难解决这些编译错误,每次我尝试用return语句修复goto语句时,它都会引入其他编译错误。

然后,我不得不在odesk上雇佣一名自由职业者,这项工作就完成了。我想知道用于解压缩以下.class文件的确切过程,这些文件可以帮助我和其他人处理JAD添加的这些混乱的goto语句、返回语句和中断语句。

https://drive.google.com/file/d/0ByGLlk1Fq3QIYzVaMGZ4MEVzcjg/edit?usp=sharing

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 19:22:59

原则上,有效的类文件可以由更多的语言生成,而不仅仅是java,但是只有标准的java编译器生成的类文件才能分解为有效的java。

更糟糕的是,即使是从java源代码编译的类文件也可能无法正确地反编译,如果代码流不能正确识别为反编译器(这可能是因为原始代码非常富有想象力,或者类是用编译器编译的,编译器生成的字节代码不为反编译器所理解)。我曾经经历过,使用sun 6编译的自己的代码在一种情况下不能正确地反编译,而使用嵌套的while循环具有标签和中断。

类文件也可能被混淆,以防止反编译。

简而言之,不能保证类文件可以被解压缩为有效的java代码,这通常不是反编译器的错误,因为我们可以用字节代码来表示无法用普通java表示的代码流。

(某种程度上)分解此类类的一般方法是使用javap (或任何其他可以显示字节代码的工具),通过自己理解字节代码来提取逻辑,然后用普通java表示逻辑。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20367168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档