我有一个文件,它是使用专有程序编译的二进制 java 文件。我尝试在一些标准反编译器中打开它,但它们无法识别它。
我怀疑这是因为根据在十六进制编辑器中查看文件添加了一些特定的专有标头。有没有办法检测java字节码在此文件中的开始和结束位置,或者如何提取它,以便我可以通过像this这样的反编译器运行它?非常感谢任何帮助。
[编辑]
顺便说一句,我想知道这是如何实现的,换句话说,Java 的哪些功能/功能允许您以这样的定制方式使用他们的编译器?
附:如果在另一个选项卡中打开图像,图像会更大。
我的猜测是它是一个加密的罐子。 编译后的代码仍然必须是 Java 字节码才能在 JVM 上运行,除非他们编写自己的代码,而这是极不可能的。 该过程的专有部分可能是对 jar 进行加密,以便在没有正确的解密密钥的情况下它不会运行。
如果是这种情况,则包的另一部分必须具有正确的密钥和解密机制。 您说它是一个二进制 Java 文件,但这可能意味着 .class 文件或 jar 文件。
这段代码是如何执行的?您是否必须自己启动 jvm(“c:/>java com.mystery.App”),还是它是其他可执行文件(exe、jar、批处理等)使用的模块?
你尝试过unpack200吗?
我正在寻找可以提供如何解决此问题的说明的人。 电子邮件:[电子邮件受保护]
谢谢,