PECompact v1.10 beta 4

©1999 Jeremy Collake

All Rights Reserved.

Email: collake@charter.net

Homepage:

http://webpages.charter.net/collake

 


This software is provided as-is, without warranty of ANY KIND, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The author shall NOT be held liable for ANY damage to you, your computer, or to anyone or anything else, that may result from its use, or misuse. Basically, you use it at YOUR OWN RISK.

Registration is required to continue using this software after a 14-day evaluation period has expired. Please see the registration information at the end of this document.


 

          I.      Overview

PECompact is a utility that compresses Windows 9x/NT4/w2k executables and DLLs to, typically, less than half their original size while leaving them 100% functional. PECompact’d applications occupy less disk space, cost less to distribute, are loaded quicker across networks, decrease network traffic, and are more difficult to reverse-engineer and modify.

 

PECompact works by compressing the code, data, import directory, resources and other portions of Windows executables. The executable is decompressed and rebuilt at runtime with no noticeable delay. In fact, compressed executables can actually load quicker in some cases because there is less data to be retrieved from the disk or network. Both compression algorithms used by PECompact feature an optimized, 32bit x86 assembly language, decompressor for maximum data throughput.

 

Unlike competing products, PECompact is highly configurable and gives the user much more power to select what is compressed and how it is compressed. PECompact also has unique plug-in support to allow for users to supply their own encryption/decryption procedures or special functionality to compressed executables.

 

For users who prefer not to compress their executables for whatever reason, PECompact also offers a “Trim Only” option that optimizes the executable structure and decreases its size without applying any compression at all! This function can optionally strip relocations from the executable.

 

Features

 

     II.      Usage

PECompact is highly configurable, however it auto-configures itself to the recommended settings, so if you don't know what any of the below means don't worry because there will probably never be a need to use any of it.

PECompact can be run without any parameters, however it also accepts the following command line syntax:

PECompact [filename] [switches]

A.     Command Line Switches


Command line switches override a saved configuration.

 

III.      Options

 

 

A.     Operations

 

B.     Advanced Configuration Toggles

 

C.     Menu Options

 

IV.      Plugins

 

PECompact has unique support of plugins to allow users to add new functionality to the PECompact symbiote. This section is briefly describes the specifications for plugin development, it is intended for developers only.

 

Plugin code is read from an exported procedure of a DLL. This code is loaded into the symbiote, with the exception of the encryption plugin in which it is not necessary to do so. The code has read/write access to itself, however delta offsets must be calculated because the code will not be loaded at its default base on compile. Please see my sample plugins, they should make everything obvious.

 

Of course, it is NOT necessary to include the plugin DLLs with the compressed application.

 

Encryption Plugin

-------------------

Exported API: EncryptPlugin

Maximum Size:   100h

On entry:

             edi->destination

             esi->source

             ecx=size

Preserve:

             You must preserve all registers except edi, esi, eax, and ecx.

Notes:

             This plugin is executed after compression of a section.

 

             

Decryption Plugin

------------------

Exported API: DecryptPlugin

Maximum Size:   100h

On entry:

             edi->destination

             esi->source

             ecx=size

Preserve:

             You must preserve all registers except edi, esi, eax, and ecx.

Notes:

             This plugin is executed before decompression of a section.

             

                         

Post-operative Plugin

---------------------

Exported API: PostOperativePlugin

Maximum Size:   200h

On entry:

             esi->LoadLibrary

             edi->GetProcAddress

Preserve:

             Nothing necessary.

Notes:

             This plugin is executed immediatly prior to passing control

             back to the original entry point of the executable.

 

 

     V.      Registration

 

To continue using PECompact after the 14-day evaluation period, you must purchase your copy of PECompact. For additional purchasing information please visit http://webpages.charter.net/collake or email collake@charter.net . To purchase PECompact via a secure web server using a credit card, please click on the desired license type below:

Consumer License

$15

Licensed for use on a single computer for private use or for use on freeware applications by authors.

Shareware License

$30

Licensed for use on shareware applications by authors.

Commercial License

$140

Licensed for use by software companies and teams of programmers on commercial/retail applications.

*All licenses include free updates.

Alternatively, PECompact can be purchased by sending a check or money order to:
           
            Jeremy Collake
            PO BOX 426
            Talbott, TN 37877
            USA