Upx File Is Modified/hacked/protected
Indeed, as jlebar notes - since the actual executable code (the thing that the CPU executes) does not exist directly in the executable file, the OS will have to write it out to the swap if it needs the memory (unlike uncompressed files, where it just reuses the memory and later reloads from the executable file). It is rarely a big loss, because executables that are in use tend to remain in memory if the program is actually active. If you have a 300MB demon that sleeps, though, you will likely notice a swap out to magnetic disk. Antares 2004 Rapidshare. I wrote 'or any other binaries, really'. It's just that (a) go compiles static binaries which makes UPX especially effective, unlike e.g.
Jun 18, 2008 Decompile/Extract Packed.EXE File. Have you tried downloading upx and running upx -d? FileName.exe: CantUnpackException: file is modified/hacked/protected. Opened 'Crazy Browser.exe' in PEid and it says 'UPX 0. File is modified/hacked/protected; How to. How to change resources when ResHack can't.
Common C and C++ projects with their hundreds of.so/.dlls; Delphi/FPC and Nim or the other two ecosystems that share this trait, but neither is as common as go. (b) it's not good for non-static binaries, that is C#, Java, Python have no benefit from this. (c) At the time I posted it, there were already 3 or 4 posts extolling the virtues of compressing Go executables. Compressing them this way however makes situation worse for memory manager. If you use uncompressed (or transparently compressed by the filesystem) binary, your process has mmaped the memory pages, which can be discarded and then reloaded, as needed. If you use self-extractor, your process has dirty pages that it itself wrote, that cannot be discarded, but must be moved to swap if needed. The more you use the same executable for multiple processes, the worse the effect is.