If there's only one copy of a program running, it won't matter - but if you are running hundreds of copies (even docerized and stuff), you are likely better off NOT upxing.
UPX – Ultimate Packer for Executables
31–40 of 82 posts
Re: UPX – Ultimate Packer for Executables
#32We used to compress all our binaries (desktop software developers), but fighting false positives from antivirus vendors became an endless nightmare. We just gave up and stopped using binary compressors entirely.
Re: UPX – Ultimate Packer for Executables
#33Earlier quoted context omitted.
I think upx is more useful for static binaries like that of Haskell applications which is kinda huge. (GHC produces huge binaries - eg. pandoc or ghc-mod). A 100 something mb binary is not what you usually have. UPX can work its magic stuff like that. More manageable not necessarily essential but when you need it you need it badly.
Is there a reason the Haskell compiler can't trim-out code it knows won't be used? Or is there another reason for the large size?
Re: UPX – Ultimate Packer for Executables
#34UPX still works great when used with Go executables. We use it heavily to compress some of our Docker image executables [1]. [1] https://github.com/znly/docker-protobuf/blob/master/Dockerfi...
It should work on almost every binary. The exception are NSIS installers, self-extracting archives (exe rar files), files with IDL interfaces. When NSIS starts they will try to open it's own exe file and find the section in which it's packed data is stored. But UPX will remove those sections and create .UPX section with compressed data.
Re: UPX – Ultimate Packer for Executables
#35Earlier quoted context omitted.
I think upx is more useful for static binaries like that of Haskell applications which is kinda huge. (GHC produces huge binaries - eg. pandoc or ghc-mod). A 100 something mb binary is not what you usually have. UPX can work its magic stuff like that. More manageable not necessarily essential but when you need it you need it badly.
Is there a reason the Haskell compiler can't trim-out code it knows won't be used? Or is there another reason for the large size?
Re: UPX – Ultimate Packer for Executables
#36Earlier quoted context omitted.
How large are those binaries? I would be surprised to see practical performance degradation in uncompressing executable code before jumping to the program on today's machine. The largest binary in my /usr/bin/ is 50 megabytes. On the other hand, for very, very large binaries it's probably faster to decompress in memory rather than load all the bits from disk. Further, most executables aren't static these days. (I oft…
50MiB to 6MiB The binaries are mostly stuff like pandoc and compiled statically so that I can run them anywhere. Nothing too special. Its not technically needed, but it makes network transfer faster and in general thats good enough. Its not really intended to reduce disk space really, just more a way to make things more manageable.
Re: UPX – Ultimate Packer for Executables
#37Surprised this still exists. A little walk down memory lane: I once ran the exe mailing list for exe packers and protection tools. There was a whole scene of people in the 90s writing such tools and writing unpackers and removal tools for such things. UPX was one of the later ones that still existed when most of this scene vanished.
I think some of that still exists, but the goal is to to evade anti-virus instead of compressing and deterring RE: https://hackforums.net/forumdisplay.php?fid=299
Re: UPX – Ultimate Packer for Executables
#38People who compress their go binaries (or any other binaries, really) - please be aware that thus doing, you stop the OS from being able to page out your executable (rarely a big loss), and also to be unable to share executable pages (not a huge loss for a 2MB executable, a huge loss for a 100MB executable). If there's only one copy of a program running, it won't matter - but if you are running hundreds of copies (ev…
Re: UPX – Ultimate Packer for Executables
#39People who compress their go binaries (or any other binaries, really) - please be aware that thus doing, you stop the OS from being able to page out your executable (rarely a big loss), and also to be unable to share executable pages (not a huge loss for a 2MB executable, a huge loss for a 100MB executable). If there's only one copy of a program running, it won't matter - but if you are running hundreds of copies (ev…
Why is this exactly?
Re: UPX – Ultimate Packer for Executables
#40UPX was also good to protect the code, not only for compacting: 1. I used UPX to compact my Delphi EXE file. 2. Then I openned up any HEXA editor 3. looked for "UPX" string and changed to "222x" Doing this, the UPX unpack tool didn't work and crackers could not easily see or edit my source code with Assembly (as UPX mess with everything!) Thanks UPX :-)