Support included in ALP version 1.0.5 and later
Microsoft Script Encoder can be used to "hide" the
critical parts of the code of your ASP pages and raw scripts. In
general MS Script Encoder (SE) allows encoded and plain script to be
mixed. This allows different planning schemes for your software - you
can choose to hide everything except a few configuration settings (for
example placed in include file) or you can choose to implement most
important things in include files and encode them but leave ASP pages
readable.
The best choice depends on your needs. For example application that
does not need changes and have only configuration settings will choose
the first one and Application developed for clients that may need
changes or not able to provide complete specification will choose the
second - to have libraries and probably change their usage on the fly.
In the ASP case SE can be used in the same manner as in the IIS
case - just encode your ASP page and leave encoder to add/change the
@Language directive to VBScript.Encode or JScript.Encode. Advanced
techniques such as encoding library include files will need a little
manual work (in case of IIS too) - you may need to remove the
automatically added @Language directive from the include file and to
change manually @Languge directive in the ASP file not passed to the
encoder.
The most important thing is that you must specify in your page
@Language=VBScript.Encode (or JScript.Encode) if you are going to use
encoded scirpt. Encode versions of the script engines support mixing
of encoded and plain script text thus you just need to enable this
option by chaging the scritp language name to its "encode"
version.
SE command line keys are described in the Microsoft documentation.
We will only recommend the easiest way to use the utility - Make copy
of your site and process the files you want to "hide" using
the /f options of the SE (replace the input file with the encoded
one). If you choose to use advanced mixing of plain and encoded
scripts make sure that all the settings are correct in all the filles
- .Encode language names in the @Language directive of the ASP pages
and no directives in the include files.
Example encoding of an ASP page:
screnc /f mypage.asp
A bit more specific are the raw scripts supported by the ScriptGen
in ALP. You must use the SE options for plain script files encoding
(such as WSH scripts). SE recognizes the script language using the
file extensions. It recognizes only .js and .vbs extensions. There is
an option /e that helps to pass to SE files with different extensions.
Here is one example command line:
screnc /e js myrawscript.js-script myrawscript.jse-script
/e option needs a parameter that is the standard file
extension used for the script language used in the script file. By
default ALP configuration processes as encoded scripts files with the
following extensions:
jse-script - JScript.Encode
vbe-script - VBScript.Encode
Raw scripts depend on the application
configuration for the include files. Therefore typically you will
need to supply settings in the alp.application file of your
application. You can configure another extension to be used if you
need this. One example section that must be included in the
ExecuteionMap section of your alp.application:
{ yourextension: (CG.newObjects.ScriptGen)
(int)RequireAsynch=2
(int)Timeout=60
(int)IsScriptEngine=1
(int)CheckThatFileExists=1
(string)ScriptLanguage=VBScript.Encode
(int)EnableParentPaths=1
(string)Library=\libdir\yourlibrary1.inc
(string)Library=\libdir\yourlibrary2.inc
} yourextension;
You can mix encoded and plain scripts in raw scripts too. For
example you can encode library files and leave other files human
readable. But as in the ASP case you will need to use the
"Encode" version of the script language.
|