反编译混淆的java字节码

发布于 2024-11-16 17:01:59 字数 355 浏览 7 评论 0原文

我在一个运行 Java 应用程序的平台上工作。这些应用程序经常被混淆,其中大多数使用 ProGuard,这使得我们平台的调试问题变得非常困难。

目前我正在使用 JD (http://java.decompiler.free.fr/ ) 进行反编译就是那些应用程序。 JD 做得不错,但有时生成的代码太难理解。

发生这种情况的主要原因是混淆工具利用 JVM 字节码的约束较少的规范来生成有效的字节码,而该字节码不会映射回有效的 Java 代码(例如:激进的重载)。

所以,我的问题是:是否有一个专门用于处理混淆字节码的反编译器?

I work on a platform which runs Java apps. Those apps are often obfuscated, most of them using ProGuard, which makes debugging issues with our platform very difficult.

Currently I'm using JD (http://java.decompiler.free.fr/ ) to decompile it those apps. JD does a decent job, but sometimes the generated code is too difficult to understand.

This appears to happen mainly because obfuscation tools exploit the less constrained spec of JVM Bytecode to produce valid bytecode which doesn't map back to valid Java code (example: aggressive overloading).

So, my question is: is there a decompiler built especially to deal with obfuscated bytecode?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

噩梦成真你也成魔 2024-11-23 17:01:59

我怀疑任何反编译器都会这样做。但是,您可以使用 ASM 等实现自定义字节码转换并重命名重载方法和变量名称。

I doubt any decompilers do that. However you could implement custom bytecode transformation and rename overloaded method and variable names using something like ASM.

妄断弥空 2024-11-23 17:01:59

这里有一个成员开发的名为 Fernflower 的反编译器。它号称是专门为反编译代码而设计的反编译器,但您可能需要对它的说法持保留态度。
已上传至此处:
https://github.com/Zidonuke/Bukkit -MinecraftServer/blob/master/tools/fernflower.jar?raw=true

There is a decompiler known as Fernflower developed by a member here. It boasts being a decompiler specifically made for decompiled code, however you may want to take its claim with a grain of salt.
It's uploaded here:
https://github.com/Zidonuke/Bukkit-MinecraftServer/blob/master/tools/fernflower.jar?raw=true

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文