PECompact v0.99 beta

©1999 by Jeremy Collake

All Rights Reserved.

Email: sales@thedigitaldetective.com

collake@charter.net

Homepage: http://www.thedigitaldetective.com/PECompact/default.htm

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.



PECompact is a utility that compresses Windows 9x/NT4/w2k executables and DLLs, while leaving them 100% functional. PECompact compresses the code, data, selected resources, import/export table of a win32 executable and optimizes its structure. It then installs a symbiote which decompresses the executable at run-time without any noticeable speed difference. Load time can actually be improved in some cases because less data has to be retrieved from the disk or network.

Features


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]

Switches


Command line switches override a saved configuration.


Options


Operations

Advanced Configuration Toggles

Menu Options

 


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, and ecx.

Notes:

             This plugin is executed prior to 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, and ecx.

Notes:

             This plugin is executed after 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.

 

 


License



To continue using PECompact after the 14-day evaluation period, you must purchase your copy of PECompact. For purchasing information please visit TheDigitalDetective or email sales@thedigitaldetective.com. The types of licenses currently available are:

Consumer License

$15

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

Shareware License

$40

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.