用专有头反编译已编译的Java文件 [英] Decompile compiled Java file with proprietary headers

查看:107
本文介绍了用专有头反编译已编译的Java文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个文件,该文件是使用专有程序编译的二进制Java文件。我曾尝试在某些标准反编译器中对此进行开放,但他们不会意识到这一点。

I've got a file that is a binary java file that was compiled using a proprietary program. I've tried to open this up in some of the standard decompilers but they will not recognize it.

我怀疑这是因为基于在十六进制编辑器中查看文件而添加了一些特定的专有标头。有什么方法可以检测Java字节码在此文件上的开始和结束位置,或者如何提取它,以便可以通过反编译器(如这个一个?

I suspect it's because some specific proprietary headers have been added, based on looking at the file in a hex editor. Is there any way to detect where the java bytecode begins and ends on this file, or how to extract it so I can run it through a decompiler like this one? Any help is much appreciated.

我想知道这是如何实现的,换句话说,Java的哪些功能/特性允许您以这种自定义方式使用它们的编译器?

As a side note i'd like to know how this was achieved, in other words what facility/feature of Java allows you to use their compiler in such a customized way as this?

< img src = https://i.stack.imgur.com/2QbMA.png alt =替代文字>
PS如果在另一个选项卡中打开图像,则该图像更大。

P.S. The image is bigger if you open it in another tab.

推荐答案

我的猜测是它是一个加密的jar。除非它们自己编写,否则编译后的代码仍必须是Java字节码才能在JVM上运行,除非极少数情况。该过程的专有部分可能是jar的加密,这样,如果没有正确的解密密钥,它将无法运行。

My guess is it is an encrypted jar. The compiled code still has to be Java bytecode to run on a JVM unless they wrote their own which is highly unlikely. The proprietary part of the process may be the encryption of the jar so that it won't run without the proper decryption key.

如果是这种情况,那么程序包的另一部分必须具有适当的密钥和解密机制。您说它是二进制Java文件,但可能意味着.class文件或jar文件。

If that is the case, there has to be another part of the package that has both the proper key and mechanism to decrypt it. You say that it is a binary Java file but that could mean a .class file or a jar file.

该代码如何执行?您是否必须自己启动jvm( c:/> java com.mystery.App),还是其他可执行文件(exe,jar,批处理等)使用的模块?

How is this code executed? Do you have to start the jvm yourself ("c:/>java com.mystery.App") or is it a module used by some other executable (exe, jar, batch, etc.)?

这篇关于用专有头反编译已编译的Java文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆