JAR hidden inside EXE?

前端 未结 5 1260
谎友^
谎友^ 2020-12-17 18:23

Minecraft, a Java game, is free this weekend. The Windows version downloads as an exe file. I was curious what the EXE file is doing and where it\'s unpacking and running th

5条回答
  •  粉色の甜心
    2020-12-17 18:49

    This used previously to be very common - especially in the days of floppy disks where space was precious and it was tedious for the unzip program to be on a different disk than the zip file.

    The reason why it can be done is because the zip-file inventory structure is located at the end of the zip-file, not the front, so a zip file can contain a large number of initial irrelevant bytes as long as the inventory structure does not point to them (and by extension jar-files too). A very frequent use for this has been to enclose a small unzip-only program which could then unpack the zip file.

    One utility to prepend such a program is the unzipsfx. Here is a manual page for it: http://linuxcommand.org/man_pages/unzipsfx1.html

    It appears that Minecraft uses another prepended program which invokes Java on itself.


    EDIT: Looked inside with an hex editor. Minecraft.exe is wrapped with Launch4j.

提交回复
热议问题