ANN: SACSLite 2.1 - software tool to protect Delphi and C++ Builder applications now supports internationalization

SACSLite (ver. 2.1.0)

SACSLite is a freeware simplified version of SACS (Soubatchev
AntiCopy System, see end of this file).

SACS is a software tool that protects Delphi 3 / Delphi 4 / C++
Builder 3 / C++ Builder 4 applications.

SACS can either only protect the applications from illegal
copying/using or produce trial versions of these applications.


The overwhelming majority of software cracks that may be found
in the Internet consists only of changing of several bytes in
the executable. Usually these are: changing of conditional jump
with unconditional, replacing call or compare operators with
NOPs or insertion of RET at the beginning of checking routines.

SACS is intended for struggle against such easy cracks.

SACS uses new (at least for me ;-) approach to the problem of
the software protection.

In its protection technique SACS does NOT use a call of some
checking routine and subsequent conditional terminating of the

Instead SACSLite modifies the project in such a manner, that
for proper functioning the application requires restoration of
OnClick event handlers of all TButton components of the main
form (SACS treats any event handlers of any components) and (as
a side effect) of Captions of various components of the main

The restoration, in turn, requires release code. Protected
application does not check release code for validity during
execution, but USES it to restore event handlers (and Captions)
from encrypted data containing in the binary resource.

Using of encryption ensures, that without correct release code
the protected application cannot be cracked, because part of
the information needed to run the application properly exists
in the .EXE file only in the encrypted form.

Without correct release code the protected application will not
respond to OnClick events of TButton components - that is it
will not perform any programmed in this event handlers actions
(and Captions will be empty). The application may be launched,
but it will not work.

To be protected by SACSLite Delphi or BCB project must contain
main form with TButton components that have OnClick event
handlers (and various Captions) set at design time.

Several SACS kinds and protection methods may be used to "SACS"

There are four SACS kinds: "Strict" or "Loose"; "Only
protection" or "Trial version".

These kinds determine four possible protection schemes for the
protected application:

"Strict" + "Only" - each example of the protected application
runs properly only with release code(s) used to produce this
particular example.

"Strict" + "Trial" - each example of the protected application
runs as registered version with release code(s) used to produce
this particular example, otherwise it runs as trial version.

"Loose" + "Only" - the protected application runs properly only
with release code(s) produced by developer for particular user.

"Loose" + "Trial" - the protected application runs as
registered version with release code(s) produced by developer
for particular user, otherwise it runs as trial version.

SACS protection methods determine what information will be used
by SACS as release code(s).

Any combination (but at least one) of the following SACS
protection methods may be used with any of above mentioned

1. "PassPhrase" method uses string PassPhrase as release code.
Protected application will work only if the user passes the
same PassPhrase or corresponding release code.

2. "Hardware" method uses some specific to the user's computer
hardware information as release code. Protected application
will work only on computer used to get this information.

3. "Month" method uses information about one chosen calendar
month as release code. Protected application will work only
during this restriction month.

More detailed information may be found in SACS.HLP file:


- Install SACSLite in any folder on your computer.
- Create Delphi or BCB project, then close it.
- Run SACSLite, open the project and "SACS" it, choosing
  appropriate SACS kind, methods and options.
- If needed, replace SACS_STR.PAS with appropriate
  international version.
- Open "SACSed" project in the IDE and compile it.
- Now protected project will run correctly only under
  conditions corresponding to chosen "SACSing" methods.
- Do not forget to "UnSACS" project before further modifying.

How SACSLite works

If project is ready to be "SACSed" SACSLite backs up appropiate
project's files in SACS_BAK directory. Then SACSLite removes
information about OnClick event handler of TButtons and
Captions of main form from .DFM, encrypts this information and
writes it in SACS_RES.RES resource file. Then it creates
SACS_DCU.* files and at last performs needed modifications of
the appropiate project's source files.

The protected application may be launched without or with wrong
password, but application will not react to treated by SACS
events and all treated by SACS Captions will be empty.

Files in this package

SACSLite.(c) - SACSLite copyright notes
SACSLite.en  - English version of this file  - Russian version of this file
SACSLite.exe - main program
SACS_HWI.exe - SACS HardWare Info saver utility
SACS.hlp     - SACS help file - interface section of SACS_DCU.PAS
SACS_STR.rus - Russian version of SACS_STR.PAS

What is SACS ?

As I mentioned, SACSLite is simplified version of SACS.

The only but very important difference between SACS and
SACSLite is that SACS protects any event handlers, not only
OnClick of TButton components.

Information about SACS and terms of its acquisition will be
e-mailed to all who are interested. Please, do not hesitate to
contact me by e-mail.


To check what "SACSed" by SACS and SACSLite applications look
like you can download file
where you can find two "SACSed" example applications.

Where to download

You can download SACSLite from: (always latest version)
or from Delphi Super Page:

Oleg Soubatchev
ICQ 16025691