反编译打包成exe的Java。在二进制流中查找 zip 文件?

Decompiling Java packed in exe. Find the zip file in a binary stream?

我有一个 exe 文件,它实际上是一个非常简单的 java 应用程序。我想反编译它并修复一些问题,但我不确定如何获取 .jar 数据以开始反编译。我已经使用资源黑客检查了文件:

在树名旁边,我用 Courier new 字体写了键值。我的笔记使用 Arial。最后一个密钥是来自某个 IDE 的 XML 文件,最初看起来像这样:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
            <requestedExecutionLevel level="highestAvailable"
                uiAccess="False" />
        </requestedPrivileges>
    </security>
    </trustInfo>
</assembly>  

虽然上面的 none 数据指出了 JAR 代码的位置,但有经验的程序员可能知道用什么程序来打包它,这就是我问你的原因。

获取数据的其他方法是在 .exe 二进制文件中找到 .jar(实际上是一个 ZIP,不是吗?)文件并裁剪 .exe 获取未损坏的 jar 文件。但是我该怎么做呢?问题标题的第二部分是指这种方法。

所以,好吧,7zip 可以解决问题:

打开 .exe 文件后,只需将其解压缩:

您实际上可以提取许多 seem-to-be 个二进制文件。很好玩:D