【发布时间】:2010-11-11 05:48:28
【问题描述】:
我有一个使用专有程序编译的二进制 java 文件。我试图在一些标准的反编译器中打开它,但它们不会识别它。
我怀疑这是因为添加了一些特定的专有标头,基于在十六进制编辑器中查看文件。有什么方法可以检测 java 字节码在这个文件中的开始和结束位置,或者如何提取它以便我可以通过像 this 这样的反编译器运行它?非常感谢任何帮助。
[编辑]
顺便说一句,我想知道这是如何实现的,换句话说,Java 的哪些设施/功能允许您以这样的自定义方式使用他们的编译器?
附言如果您在另一个选项卡中打开它,图像会更大。
【问题讨论】:
-
这看起来不像 java 类文件。在十六进制编辑器中打开它,前 4 个字节应该是 CA FE BA BE。也许是罐子?尝试将其作为 zip 文件打开。
-
这不是 jar 文件 -- jar 文件应该以 'PK' 开头。
-
尝试十六进制转储(或在十六进制编辑器中打开并捕获屏幕)。不可能看到你的图像上的那些字符是什么。
-
@J-16 SDiZ:我在上面的帖子中添加了部分十六进制转储屏幕截图。
-
经过进一步分析,我怀疑这个文件可能被加密和/或打包,7 Zip 报告它的打包方法是 LZMA:17 但导出一个空文件。我尝试创建一个新的受密码保护的 7-zip 文件并进行比较,但它们看起来完全不同,可能是因为这是使用 Java 7 zip 库创建的。
标签: java decompiling