Jump to content

EXE compression with UPX


erebus
 Share

Recommended Posts

I saw this accidentally on the web today and I found it a good idea to post it here...

Why not use an EXE compressor?

Some have asked why I made StripReloc when there are EXE compression programs such as ASPack and UPX that will trim more bytes off of executables than StripReloc ever could.

The reason is there are downsides to using EXE compressors. Most notably:

Upon startup of a compressed EXE/DLL, all of the code is decompressed from the disk image into memory in one pass, which can cause disk thrashing if the system is low on memory and is forced to access the swap file. In contrast, with uncompressed EXE/DLLs, the OS allocates memory for code pages on demand (i.e. when they are executed).

Multiple instances of a compressed EXE/DLL create multiple instances of the code in memory. If you have a compressed EXE that contains 1 MB of code (before compression) and the user starts 5 instances of it, approximately 4 MB of memory is wasted. Likewise, if you have a DLL that is 1 MB and it is used by 5 running applications, approximately 4 MB of memory is wasted. With uncompressed EXE/DLLs, code is only stored in memory once and is shared between instances.

Some older virus scanners flag compressed EXE/DLLs as being virus-infected. (This is this reason I stopped compressing Inno Setup's EXEs.)

Update: In fairness, this was written several years ago. This very well may no longer be an issue today.

Original url: http://www.jrsoftware.org/striprlc.php#execomp

I have no idea if this has to do with the current version of UPX and how the compressed EXE files work, but I think it is good to mention...

Please ignore me if this sounds irrelevant.

Good day,

Link to comment
Share on other sites

Yes, actually AutoIt use UPX for compiled files. :)

<{POST_SNAPBACK}>

I knew it, that's why I post this.

Please read it more carefully, it has to do with the potential disadvantages of this method.

Link to comment
Share on other sites

I use XP and get always the same error:

"Relocations already stripped from file (1)."

Just wanted try out for fun..hmmm...ok...doesn't work here...

Regards Holger

<{POST_SNAPBACK}>

Glad to know that; thanks for the feedback :)

If this is the case, please ignore me for good..

Good day,

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...