Search code examples
javadecompiling

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


I have a exe file that is in fact a very simple java application. I'd like to decompile it and fix some issues, but I'm not sure how can I get the .jar data to start the decompiling. I have inspected the file using resource hacker:

screenshot from resource hacker

Next to tree names, I have written key values using Courier new font. My notes use Arial. The last key was an XML file from some IDE, originally looking like this:

<?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>  

While none of the data above indicates where the JAR code could be, an experienced programmer could probably know what program was used to pack this, which is why I'm asking you.

Other way to get the data would be some magic to find the .jar (which is actually a ZIP, isn't it?) file in the .exe binary and crop the .exe to get the uncorrupted jar file. But how would I do this? The second part of question title refers to this approach.


Solution

  • So, well, 7zip does the trick:

    using 7zip, you can "unzip" many .exe files actually

    Once you open the .exe file, just extract it:

    enter image description here

    You can actually extract many seem-to-be binary files. It's fun :D