protection level III
Visual FoxPro 6, 7, 8 and 9 executables
Visual FoxPro 6, 7, 8 and 9 .app and .fxp - see *)
Visual FoxPro 6, 7, 8 and 9 COM servers (.exe or .dll)
If compiled executable is unencrypted, it can be compressed for distribution, then it must be decompressed to run on target PC and the code can be decompiled easily. If compiled executable is encrypted, the compression is ineffective which brings problem of distribution.
With Level III of ReFox XII the encryption and compression are combined into one step. No additional library files or support DLL’s are required to run the application, only the standard RT module is used and it is modified on the fly when loaded into memory. Applications are compressed to 25% of original size and decompressed into memory only when run. The application is protected by modified encryption method to disable ReFox and other decompilers from decompiling the code.
Level III supports Visual FoxPro 6, 7, 8 and 9 EXEs, DLLs and COM Servers(exe, dll)
Level III enables calling another protected application from within compressed executable,
*) Level III can be use to protect and compress APP or FXP files too,
the same password as for the main exe must be used for protection
WARNING - protection level III is irreversible !!!
Level III branding does not require any code insertions to be made.
This level scrambles the code so it is not recognized by ReFox
Application is compressed and uses standard runtime modified in memory after loaded.
The add I+ option combines level I+ and III protection.
Password
the password is hashed and the value is used as a seed for the modified
encryption of protected files
all files called from the main executable (loader) must be protected by the same
not empty password
an empty password is replaced by any random value which is different for each
file
the password does not mean a 'magic word' which could be used to remove the
protection
RT DLL's Time Stamp
this value replaces the date-time information in the string returned by
VERSION(1) function
this can be used to forward a short message to the protected application
e.g. the application can test whether or not is running in protected mode
(maximum 22 characters)
see using GETENV ("ReFox.Brand")
Splashscreen
defines an image which is shown on application start
any image type acceptable by GdiPlus can be used,
transparent .png recommended,
use the file picker to select an image,
use the spinner to define splashscreen duration,
splashscreen is closed from application -
see using GETENV ("ReFox.SplashScreen")
Cryptor issue
see using GETENV ("ReFox.CryptorX")
obsolete solution:
- edit ReFox.ini and set CryptorX = 1
- check Cryptor checkbox in Branding dialog
Limited / low memory issue
- edit ReFox.ini and set MemLimit = 1
- check limited memory checkbox in Branding dialog
DBC abuse protection
(hackers can abuse DBC to inject malicious code into application)
- DBC forbidden, prevents from opening any DBC in the application
- DBC signed only, all DBC must be signed (see Level I+ for signing DBC)
- DBC no restriction, there is no protection from abusing database
containers
use all
- all three upackers are included,
usefull only if several applications need to run together and were packed by different packers
then the starter application (the loader) must be protected with this
option
pack any
- all application components are packed (e.g. icon)
pack APP
- also APP or single FXP is packed,
these must be run from packed exe only
obf_stru
- obfuscate application structure
additional protection made by level III
obf_code
- obfuscate compiled code,
additional protection, but worse compression ratio ;-(
FileToStr abuse protection
0 default, application is protected from FileToStr(...) abuse
1 using FileToStr( ) is partially restricted, not blocked in macros and ExecScript()
2 using FileToStr( ) is partially restricted, not blocked in compiled code
3 using FileToStr( ) is fully allowed, protection is disabled
add I+
- can remove debug info for better compression
and adds a bit more protection
Compression methods and parameters:
ZLIB – vers. 1.2.2 -
http://www.gzip.org/zlib
JCAL – vers. 5.34 - http://www.bitsum.com
LZMA - vers. 9.12 - http://www.7-zip.org
ZLIB compresses faster than JCAL , JCAL gives better compression
there is no difference in speed of decompression
LZMA
- new packer, seems to be better then ZLIB and JCAL in compression and speed
first parameter: 1=max speed ... 9= best compression
second parameter is for segment size
if segment_size < file_size
the file is split to segments and each segment is compressed
and decompressed separately - this is useful for extra large files only
Makefile command - Brand 5 or III
see also
set branding level III options in makefile
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LZMA vers. 9.12 - Compression library
Copyright (C) 2009 by Igor Pavlov
http://www.7-zip.org
JCALG1 r5.34 - Compression library
Copyright (C) 1999 - 2002 by Jeremy Collake
http://www.bitsum.com
jeremy@bitsum.com
ZLIB compression library, version 1.2.1, November 17th, 2003
Copyright (C) 1995 - 2003 Jean-loup Gailly and Mark Adler
http://www.gzip.org/zlib
jloup@gzip.org
madler@alumni.caltech.edu
---
rexbrand5.html