In almost all cases the default settings for resource compression should be
used. It is recommended that you change these settings only if you suspect a
problem is being caused by the resource being compressed on disk, or if you have
need to manipulate the resources externally to the program.
Most of these options are self-explanatory. Additional information is
given where useful.
Compression
Do Not Compress
Encapsulates file with no compression. Password Protection and
Evaluation Protection are unavailable in this mode due to their reliance on
Non-Restorable/Max Compression.
Use Quick Compression
Instructs ExeLock to use a minimal compression scheme. Useful if
engaging in de-bugging or repetitive encapsulation in order to save some time.
Restorable Compression
Executables that have been compressed using restorable compression can be
restored to their original state. This is done with the 'Restore' tab in the
interface.
Non-Restorable/Max Compression
It is impossible to restore files which were compressed with Max Compression.
There are no options to be set for reversing compression, ExeLock will detect
the settings used and restore the original executable in a byte for byte
identical manner. If you want to protect your programs for distribution, as well
as reduce their size, do not use reversible compression. Always use Max
Compression on executables you will distribute.
Other Resources
There are several types of resources that we do not currently classify
separately under ExeLock. These include user-defined resources, strings, menus,
dialog boxes, fonts, and accelerators. Under most circumstances you will want to
compress these resources.
Compress Bitmaps
Note: It is recommended that you do not use RLE (run-length encoded)
bitmaps in your resources if you intend to compress with ExeLock. This is
because the compression in ExeLock is much more efficient than RLE, so that RLE
encoding interferes with this compression. ExeLock compression alone will
usually produce smaller files than either RLE by itself or a combination of RLE
and ExeLock.
If every byte counts you may want to experiment with different combinations
of compressed bitmaps and uncompressed bitmaps to see which obtains the best
results.
Miscellaneous
Data Preservation
If your executable uses data that is deliberately appended to the executable
image you will need to preserve it separately during compression. This extra
data is normally discarded.
In some special cases, programs have appended data which is assumed to be at
a certain fixed location. In order for this type of program to function normally
the DataSim option needs to be used. If you are the author of the program you
are well aware of this property of your program.
If you are compressing an executable of unknown properties assume normal
settings initially. If you encounter a problem, modify the appended data
settings if you determine that altering resource-related settings has not solved
the problem. Extra data at the end of the file is the more likely situation.
DataSim
Some programs use data that is appended to the end of the executable image.
The result is data and program contained in a single file. In some instances the
program expects to find this data at a fixed location within the file, in other
cases it locates the data by starting from the end of the file and working its
way backwards.
In the latter case the only special handling of the file that is needed is to
not compress or remove this appended data. In the case of programs expecting
data at a fixed location from the front of the file special measures are
necessary.
This is where DataSim comes into play. This technology allows us to
simulate the original file. The program is not aware it has been compressed, and
when it looks for its appended data it will seem to find it just where expected.
This appended data can optionally be compressed, resulting in the greatest
possible reduction in file size.
Non-ordinal Imports
Functions can be imported either by name or by number (also known as
ordinal). Normally, ExeLock compresses imports, including both ordinal and
non-ordinal, so that they take up less space. When the program is run, the
ExeLock loader expands the compressed imports, then looks up the imported
functions and dynamically links them to the program being run.
This mechanism doesn’t work when an imported function has been exported by
ordinal value only (also called NONAME). Note: This is fairly unusual, try
compression without this options first.
You might need this option if, at run
time after compression, you get a message box warning: "Unable to locate
exported function # in ".
Thunk EXE Exports
Some executables (.exe, not .dlls) can be "entered" by way of exported
functions before the main
entry point has been called.
This option adds code to the compressed file which allows the ExeLock loader
a chance to expand the compressed file when the exported functions are called.
Since code is added, the resulting files will be somewhat larger. Only use this
option if your .exe files don't work after being compressed. The option has no
effect on DLLs.
Icons
The default icon compression setting leaves the first group of icons
uncompressed. It is necessary to leave the first icon group uncompressed because
it is used by Windows to represent the program (and possibly associated data
files) when listed in Explorer. In some circumstances you may want to leave
additional icons uncompressed, and for some DLLs you may be able to compress all
icons without ill effect.
Additional Compression Information
Registering DLLs and OCXs
All OCXs and some DLLs need to be ‘registered’ with the operating system
before use. This is frequently done with regsvr32. If you are compressing a
program that will need to be
registered you must set certain options.
· Do Not Compress Icons
· Do Not -Compress ‘Other’
Resources
This will ensure that Windows can locate the information it needs to register
the DLL or OCX correctly.
Version Resources
ExeLock always leaves version resources (a special type of resource Windows
uses to identify the version of a file) uncompressed so that they can be read
from outside the program.
|