PECompact Documentation

Overview


Other sources and versions of this documentation:
[ Online version (English) ]
[ Online version (Russian) ]

Product Overview:

PECompact2 is a utility of the genre known as "executable packers". Executable packers compress executables and modules so that their physical size is considerably smaller than it originally was. At runtime, the module (executable) is decompressed and reconstructed in memory. With high-performance executable packers such as PECompact v2.x, decompression and reconstruction is so rapid that load time may actually improve since the time saved by reading fewer bytes from the disk or network may exceed the time spent reconstructing and decompressing the module.

Typically, PECompact2 compresses modules substantially better than that of the common compression software such as RAR and ZIP. This is accomplished through advanced techniques of pre-processing a module to make it more compressible when passed to the compression algorithm. PECompact2 allows use of virtually any compression algorithm due to its CODEC plug-in support. Included compression algorithms are listed here.

In addition to space savings, PECompact2 inherently makes it more difficult to reverse engineer your module(s). The compressed data is unreadable and not directly modifiable. PECompact2's default loader employs some basic anti-debugging code to aid in prevention of reverse engineering. In addition, PECompact2 supports Loader plug-ins. Therefore, third parties can create custom loaders after purchasing the loader SDK.

Topics:

  1. Overview (this page)
  2. Using the console application (pec2)
  3. Using the Graphical User Interface (pec2gui)
  4. Options / Settings / Parameters
  5. CODEC plug-ins
  6. Loader plug-ins
  7. .NET executable compression
  8. API Hook plug-ins
    1. Using the IsPacked plug-in
    2. Using the Watermark plug-in
  9. PE Suite (console mode PE tools)
    1. PEHideText Usage
  10. Misc. Information
  11. TLS Callbacks
  12. Licensing / Purchasing
  13. Credits

Plug-in SDK Documentation:

  1. CODEC Plug-ins
  2. API Hook Plug-in
  3. Loader Plug-ins (requires Loader SDK purchase)
     
 

Understanding the Terminology

Before reading this documentation and using PECompact2, it is important to define a few terms that are used throughout:

Portable Executable A Portable Executable is the format of Win32 modules such as .EXE, .DLL, and .SCR.
CODEC
An encoding and decoding algorithm. For example, a compression or encryption algorithm. Users of PECompact2 can select which of many different CODECs to use on target files.
 
Loader
This Loader is the small piece of code and data attached to processed modules (files) that is responsible for decompressing (or decoding) the module at runtime.