©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.
A. Operations
B. Advanced Configuration Toggles
C. Menu Options
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.
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:
$15 |
Licensed
for use on a single computer for private use or for use on freeware
applications by authors. |
|
$30 |
Licensed
for use on shareware applications by authors. |
|
$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