Home

User Manual - Ruby Encoder

image

Contents

1. 2 2 2 2 1 or if you are using zip Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded rubyencoder 1 5 powerlinux zip usr local Unpack gt cd usr local gt unzip rubyencoder 1 5 powerlinux zip Update permissions gt cd usr local rubyencoder 1 5 bin gt chmod a x rubyencoder licgen rginfo Run the encoder gt rubyencoder The installation package has the following structure rubyencoder 1 5 bin rubyencoder RubyEncoder executable rubyencoder 1 5 bin rubyencoder18 so Internal encoder for Ruby 1 8 x cannot be used directly rubyencoder 1 5 bin rubyencoder19 so Internal encoders for Ruby 1 9 x cannot be used directly rubyencoder 1 5 bin license txt license text rubyencoder 1 5 bin licgen RubyEncoder Script License Generator for full version only ruby encoder 1 5 bin rginfo Ruby Encoder Information Tool for full version only ruby encoder 1 5 rgloader Protected script loaders ruby encoder 1 5 README Startup document rubyencoder 1 5 User_Manual pdf User manual in PDF format When you run RubyEncoder for the first time please follow the instructions below about encoder license installation Running the command line encoder RubyEncoder 1 5 is a command line executable file named rubyencoder You may find it in the RubyEncoder installation directory in the bin sub
2. Use L lt path to encode lic gt option for rgencoder licgen or rginfo tools in order to specify a path to the license file The RubyEncoder license file is usually located in the users home directory Windows XP C Documents and Settings USER Application Data RubyEncoder encode lic Windows 7 C Users USER Application Data Ruby Encoder encode lic Example running a command line encoder on Windows XP after installing and registering a GUI application gt C Program Files RubyEncoder 1 5 rgencoder exe L C Documents and Settings USER Application Data RubyEncoder encode lic Example running a command line encoder on Windows 7 after installing and registering a GUI application gt C Program Files RubyEncoder 1 5 rgencoder exe L C Users USER Application Data RubyEncoder encode lic 2 15 IBM PowerLinux You need to unpack the downloaded encoder installation file into any directory For IBM PowerLinux we suggest that you install into the usr local or any user home directory home username The following instruction is expecting you use a terminal for installation The downloaded encoder file may have the following names according to the OS platform and version of the encoder rubyencoder 1 5 powerlinux tar gz or zip or tar bz2 rubyencoder 1 5 evaluation powerlinux tar gz or zip or tar bz2 Example trial version Copy the downloaded file to the destination directory usr local You may use either OS interface or te
3. navigate to Contents MacOS Note the command line encoder is named rgencoder to distinguish from the GUI application If you have RubyEncoder installed to Applications a full path to the command line tools is Applications Ruby Encoder app Contents MacOS Use L lt path to encode lic gt option for rgencoder licgen or rginfo tools in order to specify a path to the license file The RubyEncoder license file is usually located in the users home directory in config RubyEncoder encode lic Example running a command line encoder on Mac OS X after installing and registering a GUI 2013 rubyencoder com Using of RubyEncoder 12 application gt Applications RubyEncoder app Contents MacOS rgencoder L config RubyEncoder encode lic 2 1 4 Windows Installation for Windows is easy Double click the downloaded RubyEncoder installer executable ruby encoder 1 5 windows exe or rubyencoder 1 5 evaluation windows exe in order to run it Follow instructions on the screen RubyEncoder installer will install the software and finally run the GUI encoder Command line encoder and tools are included with the GUI installation for Windows You may find them within the RubyEncoder installation folder Note the command line encoder is named rgencoder exe to distinguish from the GUI application If you have RubyEncoder installed to C Program Files a full path to the command line tools is C Program Files RubyEncoder 1 5
4. copied as is without encoding It is useful for encoding an entire project directory when it also may contain non Ruby files internal encoder error This is an internal problem with the encoder Check you have unknown error enough free memory space to run the encoder and some free space on the disk If it is not a memory problem then let us know about this error Send an email to support rubyencoder com with a detailed description of the error and the command line used for running the encoder We will investigate the problem We may also need some additional information from you Locking options full version only Note for evaluation version users all the script locking options are disabled for the evaluation version of RubyEncoder However you may read below about the available options and script locking features that work in the full version of the encoder expire lt dd mm yyyy gt With this option you can set an expiration date for the script The script will not run on and after the specified date and comes with the error message script has expired This option will override any previous lock set with the days option days lt nn gt You can set the script to expire in a number of days from today The script will not run after nn days from today and comes with the error message RubyEncoder Loader the script has expired Contact the script author about this problem Error code 09 This option will override an
5. o option file is already processed by The encoder will not encode files which are already encoded with Ruby Encoder RubyEncoder Check your original files directory empty file skipped The encoder will not encode empty files If you need to have empty files for any reasons you may copy them manually not regular file skipped The encoder could not encode a file because it is not a regular file It may be socket or a unix device for example do not encode skipped The file was marked as do not encode and therefore was skipped copied The file was copied without encoding It is possible when the f option is used to specify files to encode and o option is used to specify output directory All other files than specified in f option will be copied as is without encoding It is useful for encoding an entire project directory when it also may contain non Ruby files 2013 rubyencoder com 39 RubyEncoder 1 5 User Manual 4 3 internal encoder error This is an internal problem with encoder Check you have enough unknown error free memory space to run the encoder and some free space on the disk If it is not a memory problem then let us know about this error Send an email to support rubyencoder com with a detailed description of the error and the command line used for running the encoder We will investigate the problem We may also need some additional information from you Error messages when running protecte
6. 1 for FreeBSD 8 x i386 platform It is 32 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 9 2 for FreeBSD 8 x i386 platform It is 32 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 8 x for FreeBSD 8 x x86_64 platform It is 64 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 9 0 1 9 1 for FreeBSD 8 x x86_64 platform It is 64 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 9 2 for FreeBSD 8 x x86_64 platform It is 64 bit ELF shared object The above list is not complete Some of the new loaders for other operating systems and new versions of Ruby are probably already included into the installation package We will include more loaders later to support new operating systems and platforms Visit http www rubyencoder com loaders for an update 2013 rubyencoder com RubyEncoder 1 5 Errorsand common mistakes 38 4 Errors and common mistakes This section includes common mistakes that people may do either in encoding and protecting their files or in uploading or running them They are not in any particular order but we suggest that you take a look at this section before you contact us regarding any support matter 4 1 Encoded scripts modification Encoded scripts are protected against modification Please DO NOT MODIFY any single byte in the encoded scripts or you will get an error when running them While normally you will get an error message from RubyEn
7. 5 35 RubyEncoder 1 5 User Manual 3 1 3 2 Running protected scripts Protected script loaders are dynamically loaded Ruby modules which are automatically used by the protected script for decrypting it validating and then running the bytecode The source code is never restored at any time even in memory There is no Ruby source code within the scripts protected with RubyEncoder There are different versions of the loaders available for different operating systems and Ruby versions The appropriate version of the loader will be automatically loaded by the protected script We periodically update RubyEncoder Loaders and add support for other operating systems The latest loaders are always freely available from our site If you have any problems with using the loaders please make sure you always use the latest version http www rubyencoder com loaders RubyEncoder Loaders are included with the RubyEncoder installation package You may find the loaders in the rgloader subdirectory within the RubyEncoder main installation directory Installing loaders Scripts protected with RubyEncoder require installing a RubyEncoder Loader to the target machine in order to run Protected scripts attempts to find the loader in the rgloader directory located within the protected script s directory or parent directories The code will keep looking for an rgloader directory with the loader rg helper script in it until it reaches the
8. Update permissions gt cd usr local rubyencoder 1 5 bin gt chmod a x rubyencoder licgen rginfo Run the encoder gt rubyencoder The installation package has the following structure rubyencoder 1 5 bin rubyencoder RubyEncoder executable ruby encoder 1 5 bin rubyencoder18 so Internal encoder for Ruby 1 8 x cannot be used directly ruby encoder 1 5 bin rubyencoder19 so Internal encoders for Ruby 1 9 x cannot be used directly rubyencoder 1 5 bin license txt license text rubyencoder 1 5 bin licgen RubyEncoder Script License Generator for full version only ruby encoder 1 5 bin rginfo Ruby Encoder Information Tool for full version only ruby encoder 1 5 rgloader Protected script loaders ruby encoder 1 5 README Startup document rubyencoder 1 5 User_Manual pdf User manual in PDF format When you run RubyEncoder for the first time please follow the instructions below about encoder license installation 2 13 Mac OS X Installation for Mac OSX is easy Double click on the downloaded DMG When the DMG is opened drag the RubyRncoder icon onto the Applications icon which will install the RubyEncoder application into your Applications folder Double click the RubyEncoder icon in Applications to run the encoder Command line encoder and tools are included with the GUI installation for Mac OS X You may find them within RubyEncoder app application package Right click the RubyEncoder icon in Finder choose Show Package Contents
9. You may find licgen executable in the RubyEncoder installation directory in bin subdirectory Running the license generator without any options prints a list of all available options for a quick help Please refer to this user manual for details of using the license generator Using the script license is the best way of encoding if you need to distribute one script or entire project between different users but need to use different restriction options for each user You need to encode 2013 rubyencoder com Using of RubyEncoder 30 your scripts with the external option using RubyEncoder 1 5 and then create a license for each user with the RubyEncoder 1 5 Script License Generator Scripts encoded with the external option require an external license file to run Protected scripts will search for the license file in the current directory and all parent directories So you may have one license file for an entire protected project located in the top project directory If a protected script cannot find the specified license file it will return an error message RubyEncoder Loader the script requires license file to run Contact the script author regarding getting a license file Error code 13 The algorithm used for locking scripts to an external license file gives your scripts much stronger protection from reverse engineering unlocking and bytecode stealing but it also gives you the most flexible way to generate t
10. generated by RubyEncoder license generator The included text is protected with a checksum against modification The option may be used to include user information license description etc into license files e Custom constants substitution in the custom header code All user constants will be replaced in the prepend code Also some standard RG constants may be used RG_DATE current date i e date of encoding RG_LICENSEE RubyEnoder license owner from the RubyEncoder license file It works in the same way also for licgen and do replacements for custom text if it is used GUI FOR MAC OS X LINUX AND WINDOWS e We are proud to present a new cross platform GUI for Mac OSX Windows and Linux versions of RubyEncoder It includes all the features of the command line encoder and tools and even more It has built in support system and more SUPPORTED RUBY VERSIONS e Encoding for Ruby 1 8 6 to 1 9 3 are fully supported SUPPORTED OS e Encoder is available for Mac OSX Linux i386 and x86_64 versions FreeBSD i386 and x86_64 versions and Windows e GUI and command line encoders and tools are included e RubyEncoder for FreeBSD and IBM PowerLinux is available as command line tools 2013 rubyencoder com Index 48 Index A About RubyEncoder 2 B Backup 26 Binding 17 Buy 2 C CGI 44 Command line encoder installation 7 Command line encoder installation for FreeBSD 7 12 Command line encoder inst
11. line Source files will be unchanged if you specify the output directory and it differs from your source directory The default backup option will be off when the output directory is specified If you want to re enable it even when the output directory is specified then use the b lt backup_extension gt option after the output directory option Carefully specify the output folder which should never overlap with your source The command line encoder does not do any checking for that The full directory path to source scripts will be recreated under the output directory if the full path to source files was specified Windows users drive names C D etc will be replaced with just one letter C D etc when recreating the path under the output directory Command line option o lt output_dir gt Example 1 Encode all rb scripts in the current directory with recursion and put encoded files to home myproject encoded gt rubyencoder r o home myproject encoded rb Example 2 Encode all scripts specified in the filelist and put encoded files to home myproject encoded Additionally backup source scripts in the source directory with bak extension gt rubyencoder o home myproject encoded b bak filelist Script license generator full version The Script License Generator is an external tool for creating script license files A script license file is required to run protected scripts encoded with the external option
12. or zip or tar bz2 Example trial version Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded rubyencoder 1 5 evaluation freebsd i386 tar gz usr local Unpack gt cd usr local gt tar xzf rubyencoder 1 5 evaluation freebsd i386 tar gz Update permissions gt cd usr local rubyencoder 1 5 evaluation bin gt chmod a x rubyencoder Run the encoder gt rubyencoder 2013 rubyencoder com Using of RubyEncoder 8 or if you are using zip Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded rubyencoder 1 5 evaluation freebsd i386 zip usr local Unpack gt cd usr local gt unzip rubyencoder 1 5 evaluation freebsd i386 zip Update permissions gt cd usr local rubyencoder 1 5 evaluation bin gt chmod a x rubyencoder Run the encoder gt rubyencoder Example full version Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded rubyencoder 1 5 freebsd i386 tar gz usr local Unpack gt cd usr local gt tar xzf rubyencoder 1 5 freebsd i386 tar gz Update permissions gt cd usr local rubyen
13. the target server by printing ENV SERVER_ADDR or ENV LOCAL_ADDR values 2013 rubyencoder com Using of RubyEncoder 20 ip encrypt lt x x x x y y y y gt Bind and encrypt to ip mask The encoder will lock the script to run only from the specified IP address The encoder will use a specified IP address with applied mask as a part of the key for encryption for the maximum protection The Loader will not be able to even decrypt a script from the wrong ip address and will display the error message RubyEncoder Loader Loader script checksum error The encoded file has been modified If the script requires a license file to run this error may be caused by an invalid license file Install the original unmodified file or contact the script author regarding getting the original file or license file Error code 12 You may use this option ONLY ONCE in a command line IP address mask 255 255 255 255 is used by default if not specified This option may not be used with ip option Please read the above comments about SERVER_ADDR and LOCAL_ADDR environment variables This is also applied for ip encrypt option Mac lt XX XX XX XX XX XX gt You can bind a script to a LAN hardware MAC address Note the MAC address name here is Media Access Control address and it is not related to Macintosh computers only All networked computers have it This address is unique for a networking adapter and so it may be easily use
14. trial version of your product Here is a sample list of features locking to date with optional atomic online time servers checking locking to multiple domain names locking to multiple IP addresses locking to multiple LAN hardware MAC addresses improved locking to a specific domain name with encryption The domain name is used as a part of the key for encryption so protected scripts may not be decrypted and run from another domain improved locking to the ip address with encryption The ip address is used as a part ofthe key for encryption This means that protected scripts cannot be decrypted and run from another ip address locking to an external license file produced by the built in RubyEncoder 1 5 license generator This is i deal for creating protected scripts to be deployed to different users and it even allows to assign different locking options to different users The RubyEncoder 1 5 license generator tool can run from GUI or as a command line tool which adds another powerful element It provides a method for licenses to be dynamically generated and this would be useful for example when selling scripts online locking protected scripts to work only online Other options The following is not an exhaustive list but covers some of the other options in version 1 5 Encoding only files changed since last encoding A custom text may be added as is to the generated license file Built in support for GUI versions option to check t
15. 4 days evaluation of RubyEncoder 1 5 2013 rubyencoder com RubyEncoder 1 5 RubyEncoder 1 5 User Manual 2 1 Using of RubyEncoder Command line tools installation You may download RubyEncoder 1 5 installation package as zip tar gz or tar bz2 file or dmg file for Mac OSX Windows version includes an installer which you may run to install RubyEncoder An evaluation version of RubyEncoder is available as a free download from our site http rubyencoder com trial html The full version of RubyEncoder is available for download from your account profile after purchase Click here to read more about installation for Linux Click here to read more about installation for FreeBSD Click here to read more about installation for Mac OSX Click here to read more about installation for Windows FreeBSD You need to unpack the downloaded encoder installation file into any directory For FreeBSD we suggest that you install into the usr local or any user home directory usr home username The following instruction is expecting you use a terminal for installation The downloaded encoder file may have the following names according to the OS platform and version of the encoder rubyencoder 1 5 freebsd i386 tar gz or zip or tar bz2 ruby encoder 1 5 evaluation freebsd i386 tar gz or zip or tar bz2 rubyencoder 1 5 freebsd x86_64 tar gz or zip or tar bz2 ruby encoder 1 5 evaluation freebsd x86_64 tar gz
16. Ruby interpreter with one of the following environment variables SERVER_NAME or HTTP_HOST The Apache web server does it by default for a CGI interface It also provides these environment variables for the FastCGI interface but it depends on the FastCGI server to provide these variables to the script For the Nginx webserver you need to have an appropriate fastcgi_param line in the web server configuration file to have that variable passed to the Ruby script For other web servers please look at the configuration accordingly As a developer you may wish to check if the SERVER_NAME or HTTP_HOST variable is available in the environment on the target server by printing ENV SERVER_NAME or ENV HTTP_HOST values Hint use the name of the main domain in this option not the name of any sub domain until you are sure you need to lock to a sub domain Example 1 domain mydomain com The script will run from mydomain com www mydomain com myname mydomain com etc but will NOT run from otherdomain com www otherdomain com otherdomain net etc 2013 rubyencoder com 19 RubyEncoder 1 5 User Manual Example 2 domain www mydomain com Script will run ONLY from www mydomain com It will not run on the main domain mydomain com and all other sub domains like myname mydomain com as well as other domains like otherdomain com www otherdomain com otherdomain net etc domain encrypt lt domain gt You can Bind and encrypt to a d
17. The specified IP address mask will be applied to the real IP address before comparing So you may use this option to lock the script to a multiple IP if a mask is specified If run from an IP address that is not allowed the script will display the error message RubyEncoder Loader the script is not licensed to run on this machine or it is not running in a web server environment Run this script in web server environment Contact the script author about this problem Error code 01 You may use this option more than once to specify multiple ip mask pairs IP address mask 255 255 255 255 is used by default if not specified This option may not be used with ip encrypt option Please note the loader will be able to check the domain name for a protected script ONLY in a web server environment The web server should provide the Ruby interpreter with one of the following environment variables SERVER_ADDR or LOCAL_ADDR Apache web server does it by default for the CGI interface lt also provides these environment variables for the FastCGI interface but it depends on the FastCGI server to provide these variables to the script For the Nginx webserver you need to have an appropriate fastcgi_param line in the web server configuration file to have that variable passed to the Ruby script For other web servers please look at the configuration accordingly As a developer you may wish check if SERVER_ADDR or LOCAL_ADDR variable is available in the environment on
18. ader load AAEAAAABaAAAAIAAAAAA 6VBQ2 4j8ivZCR3gVFB15 Hr Y90fXBYLdnQDavA jb9gGL6 6uNGOOBaN4Uk 9NrqUbHzhv WHM97yUOky3jHsiD9nsMr9JiGEavcO5tAIbHD1 1xoxia2TOrPle4v e8 H 30dwWqOI jks 94QLEGAAAGAAAAB7 5w3qzOZOCmvQDu0s G9ZVhz0GbAyloT4injTT831ijyjOiubOUfKRn2 frb700m3dEXG qgyUtKkKGZZ2yaCE0T9yV1VOZLZVARKezGylUJdYtDb41rK0t8SYFRLBYnwAYAAAAA Now a test run without a required RubyEncoder Loader installed gt ruby hello rb Loader is not found Call 123 456 7890 for support Prepend header code and Loader error code may be loaded from a file Prepend header code option p and Loader error code option j may load the source from a file Use filename as a parameter for p or j We suggest to use this option if you need to add some complex code It is easier to edit this code in a separate file than writing it in command line as an option Example gt rubyencoder p prepend rb j loadererr rb file rb Stop On error Stop on compiler errors This option instructs the encoder to stop encoding at first critical error This may be useful if you have many files in the project and there is a risk of missing errors and leaving some files unencoded because of it Note Even if this option is off error messages will be printed to console during encoding a lt YYYYMMDDhhmmss gt This options lets you encode only changed files detected by file modification date Only files that have been modifie
19. allation for Linux and FreeBSD 9 Command line encoder installation for Mac OSX 11 Command line encoder installation for Windows 12 Pi encode lic 15 Encoded scripts modification 38 Encoder errors 38 Error 38 Error messages during encoding 38 Error messages during protected scripts run 39 Errors common mistakes and possible solutions 38 Evaluation scripts 17 Exclude files 26 External license file F 17 29 Features 2 First run 15 FreeBSD 7 9 12 il How it works 2 How to buy 2 Install 35 Installation 7 9 11 12 Installing loaders 35 L License 15 26 licgen 29 31 Linux 9 Loader errors Loaders 35 Locking 2 17 Locking to domain 17 Locking to IP 17 Locking to MAC address 17 Mac 11 0 Options 2 OSX 11 Other options 26 Output directory 26 P Project ID 17 Project Key 17 Protected script loaders 35 Purchase 2 ss rginfo 32 38 39 2013 rubyencoder com 49 RubyEncoder 1 5 User Manual rgloader directory structure 35 Ruby shell scripts encoding 44 rubyencoder 14 15 17 26 Running the command line encoder 14 Ss Script locking options 17 Setup 7 9 11 12 35 Supported OS and platforms 35 TE Time server 17 U Usage of Information Tool 33 Usage of License Generator 31 Usage of RubyEncoder 15 Using external script license generator 29 Using information tool 32 V Version 26 W Windows 12 2013 r
20. ame in the URL accessing the script Check the script is running in a web server environment and that the server domain name is available as an environment variable for the script See script locking options section in this manual for details RubyEncoder Loader This script is not licensed to run on this machine Please contact the script author about this problem Error code 03 The protected script was encoded with a mac locking option and has bound the script to some LAN hardware MAC address es When the script is about run on a machine running a different MAC address the above error message will appear MAC address es specified for the script during encoding do not match any of MAC addresses on a target machine Check the MAC address es on the machine running the script We suggest to use ifconfig a command for it Execute it in shell on a target machine to list all available network interfaces See script locking options section in this manual for details RubyEncoder Loader A license file required to run this protected script is invalid Contact the script author for getting a license file Error code 06 The protected script was encoded with an external locking option and bound to an external license file That license file is required to run the protected script on a target machine The license file has been found but it failed validation Possibly it was accidentally changed Install the correct license file for this project o
21. and requires the RubyEncoder loader Please visit the http www rubyencoder com loaders RubyEncoder site to download the required loader and unpack it into rgloader directory to run this protected script RuntimeError It is possible for you to change the default loader error behavior This option allows you to change the default error action of the protected script if it cannot find or load an appropriate RubyEncoder Loader file You may use any Ruby code here and it will be executed as a replacement to the default RubyEncoder loader exception This code WILL NOT BE ENCODED You should prepend all all special characters including double quote characters with a back slash if you want to include them into the code becomes If you need instead of printing own error message you may load the required RubyEncoder Loader with require directive from non standard directory Example gt rubyencoder j puts Loader is not found Call 123 456 7890 for support exit 1 hello rb The encoded script will have the defined code as unencoded 2013 rubyencoder com 23 RubyEncoder 1 5 User Manual RubyEncoder v1 0 _d _d0 File expand path File dirname __FILE__ while 1 do _f _d rgloader loader rb bre ak if File exist _f _dl File dirname _d if _dl _d then puts Loader is not found Call 123 456 7890 for support exit 1 break else _d _dl end end require _f RGLo
22. asks are supported use and for it You should use an sign before the filelist name in the command line Usage f filelistname When specifying a relative path don t use or directory specifiers You can specify an output directory for all encoded scripts Source files will be unchanged if you specify an output directory different from your source scripts dir The default backup option will be off when an output directory is specified If you want to re enable it even when the output directory is specified then use the b lt ext gt option after the output directory option The full directory path to the source scripts will be recreated under the output directory if the full path to the source files was specified Example 1 Encode all rb scripts in the current dir with recursion and put encoded files into home myproject encoded gt rubyencoder r o home myproject encoded rb Example 2 Encode all scripts specified in the filelist and put encoded files 2013 rubyencoder com Using of RubyEncoder 28 into home myproject encoded Additionally backup source scripts in source directory with bak extension gt rubyencoder o home myproject encoded b bak filelist Always quote file masks Otherwise the command line shell will replace your mask with the real file and dir names and the result may be unexpected You should always quote file masks that specify filesto encode or exclude in comma
23. bility for the distribution of your scripts We as a team are very excited about the potential for our product as well as the Ruby and Ruby on Rails community We finally have a method to protect and distribute our commercial code and many of the developers who have worked with us during the beta phase have said that RubyEncoder solves many of the problems they previously had As for the future of RubyEncoder we thank everyone who has purchased downloaded or even taken the time to browse our site We plan to continue to increase the functionality and power of these programs whilst keeping an affordable upgrade path We always welcome new suggestions and if you feel that you have something you would like us to add then feel free to contact us Thanks for your interest and thanks for your business The RubyEncoder Team 1 2 Howto buy To purchase RubyEncoder 1 5 please visit the following Website http www rubyencoder com buy_now html There are two methods available via Credit Debit Card or via Paypal 1 3 Features Protection method The RubyEncoder 1 5 protects Ruby scripts by compiling Ruby source code into a bytecode format and this is followed by encryption This protects your scripts from reverse engineering Ruby scripts protected by RubyEncoder can be executed but cannot be read and do not contain original source code within encoded files in any form Scripts protected with RubyEncoder require installation of a Ruby Encoder L
24. by script should be compatible with all versions of Ruby you are encoding for could not backup source file The encoder could not make a backup copy of your original file skipped when no output directory was specified RubyEncoder skips the file in that case to keep your original version Check you have enough free space available and permissions to write to your original files directory cannot not write file The encoder could not write the encoded file Check you have enough free space available and permissions to write to original files directory or to the output directory if you have specified it with the o option file is already processed by The encoder will not encode files which are already encoded with Ruby Encoder Ruby Encoder Check your original files directory empty file skipped The encoder will not encode empty files If you need to have empty 2013 rubyencoder com 17 RubyEncoder 1 5 User Manual 2 2 4 files for any reasons you may copy them manually not regular file skipped The encoder could not encode a file because it is not a regular file It may be a socket or a unix device for example do not encode skipped The file was marked as do not encode and therefore was skipped copied The file was copied without encoding It is possible when f option is used to specify files to encode and o option is used to specify output directory All other files than specified in f option will be
25. coder 1 5 bin gt chmod a x rubyencoder licgen rginfo Run the encoder gt rubyencoder or if you are using zip Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded ruby encoder 1 5 freebsd i386 zip usr local Unpack gt cd usr local gt unzip rubyencoder 1 5 freebsd i386 zip Update permissions 2013 rubyencoder com 9 RubyEncoder 1 5 User Manual gt cd usr local rubyencoder 1 5 bin gt chmod a x rubyencoder licgen rginfo Run the encoder gt rubyencoder The installation package has the following structure rubyencoder 1 5 bin rubyencoder RubyEncoder executable rubyencoder 1 5 bin rubyencoder18 so Internal encoder for Ruby 1 8 x cannot be used directly rubyencoder 1 5 bin rubyencoder19 so Internal encoders for Ruby 1 9 x cannot be used directly rubyencoder 1 5 bin license txt license text rubyencoder 1 5 bin licgen RubyEncoder Script License Generator for full version only ruby encoder 1 5 bin rginfo Ruby Encoder Information Tool for full version only ruby encoder 1 5 rgloader Protected script loaders ruby encoder 1 5 README Startup document rubyencoder 1 5 User_Manual pdf User manual in PDF format When you run RubyEncoder for the first time please follow the instructions below about encoder license installation 2 1 2 Linux RubyEncode
26. coder loader about a CRC checking issue if running a modified protected script running modified protected scripts may cause serious problems like segmentation faults in the Ruby interpreter This is not a problem with RubyEncoder or loaders 4 2 Error messages during encoding You will see the log file printed in the terminal window during an encoding process Encoding status message will be displayed for each encoded file You may get the following status messages ok The file was encoded no problem file not found or cannot be read The specified file could not be found Check the specified file path Ruby syntax or other compiler error The original file has syntax or other errors and thus cannot be encoded Check your file test it with the Ruby interpreter This error may also appear when encoding for multiple versions of Ruby Please note you ruby script should be compatible with all versions of Ruby you are encoding for could not backup source file skipped The encoder could not make a backup copy of your original file when no output directory was specified RubyEncoder skips the file in that case to keep your original version Check you have free space available and permissions to write to your original files directory cannot not write file The encoder could not write the encoded file Check you have free space available and permissions to write to the original files directory or to the output directory if you have specified it with
27. d Enabling Rails compatibility lets you encode all Rails rb files Normally you can encode only application controllers model and helper files Other files if encoded would not work under Rails if the new Rails compatibility mode was not used Only Ruby files can be encoded anyway The option may be enabled in Advanced options in GUI or using the rails command line option e Option to stop encoding at a critical error We have added a new option for the encoder to stop at a critical error See details e A new option to encode only changed files detected by file modification date See details Automatic filtering UTF 8 BOM from all source files This allows encoding files created in editors that save BOM e Marking a file to be skipped during encoding It s possible to mark a file to be skipped by the encoder Add the following string anywhere in the code use comments Skipped files will be copied as is to the target folder if it s specified RubyEncoder DO_NOT_ENCODE Note Comparison is case sensitive for Windows Do not change the case for better code compatibility 2013 rubyencoder com 47 RubyEncoder 1 5 User Manual e Now it is possible to send licgen s output to console instead of a file use double dash instead of the output file name See details e Added a new license generator option to add custom text into the license file We have added an option to include custom text into license files
28. d after the specified date will be encoded 2013 rubyencoder com Using of RubyEncoder 24 2 2 6 Custom predefined constants const name value RubyEncoder lets you define custom named constants during an encoding process or within an external script license Constant name value pairs are stored internally in the encrypted area of the protected script or external license They may be used for custom script locking or any other actions if you need to store a custom value in the protected script or script license file and then retrieve it from your protected Ruby code It is important to use quotes if your constant name or its value contains any spaces or other special symbols You may define only one constant with each const option but you may add as many const options as you need into the command line gt rubyencoder const licensed_for Robin Hood myscript rb gt licgen const licensed_for Robin Hood script lic To get a predefined constant value from the protected Ruby code use RGloader get_const method This method is defined in the RubyEncoder loader RGLoader get_const will return a predefined RubyEncoder constant value or nil if the constant with the specified name is not defined Constant names are case sensitive There are 5 constants predefined for each protected script RGLoader get_const encoder Returns the name of the encoder RubyEncoder RGLoader get_const loader_version Ret
29. d scripts This section includes descriptions of error messages that may appear when running protected scripts They are not in any particular order but we would suggest that you take a look at this section before you contact us regarding any support matter Ruby script is protected by RubyEncoder and requires the RubyEncoder loader Please visit the http www rubyencoder com loaders RubyEncoder site to download the required loader and unpack it into rgloader directory to run this protected script Runtime Error RubyEncoder Loaders are not installed or have been installed in the wrong directory or the script does not have enough permissions to access the rgloader directory of files in it To run protected scripts on a target machine you need to install the RubyEncoder Loaders to the rgloader directory within the protected script directory on a target machine If your project consists of multiple directories with protected scripts in them you may install the rgloader directory into a project s top directory protected scripts will be able to find the loaders there The RubyEncoder loader is not installed Please visit the http www rubyencoder com loaders RubyEncoder site to download the required loader for your OS name and unpack it into rgloader directory to run this protected script in require no such file to load LoadError The protected script was able to locate the rgloader directory and run
30. d to identify a machine A MAC address is 6 bytes long with each byte represented in hex and separated with a symbol The encoder will lock a script to run only from the machine which has a networking adapter with the specified MAC address If there is more than one LAN adapter installed then the script will check all of them If an attempt is made to run a script from a machine without the correct adapter then the script will display the error message RubyEncoder Loader the script is not licensed to run on this machine Contact the script author regarding this problem Error code 03 You may use this option more than once to specify multiple MAC addresses Hint you may use ifconfig command under Mac OSX Linux or FreeBSD or route print under Windows to get a list of installed networking adapters and known MAC addresses On Macintosh you may find LAN hardware addresses in System Preferences Network Advanced Ethernet Ethernet ID Locking the script to a LAN hardware address may be the only option to lock the script to a machine when the script is not running in a web server environment or some environment variables are not available for server IP address or server domain name check E g running a script as cron task or just a command line script external lt filename gt The script will require an external license file to run This file may be distributed with the script or separately from it This option gives you an opportun
31. directory Running the encoder without any options prints a list of all available options for a quick help Please refer to this user manual for details of using the encoder In your terminal change the current directory to the RubyEncoder installation directory and type bin rubyencoder to run the encoder Note for GUI users If you are using command line tools preinstalled with a GUI version of RubyEncoder on Mac OS X Linux or Windows please note that the command line RubyEncoder executable is named rgencoder instead of rubyencoder in the manual below This is to distinguish the command line encoder executable from O 2013 rubyencoder com 15 RubyEncoder 1 5 User Manual 2 2 2 2 2 3 the GUI executable which is also named rubyencoder If you use a GUI version type rgencoder instead of rubyencoder in all the commands you enter in the terminal License generator and Information tool have their names unchanged in all versions licgen and rginfo accordingly RubyEncoder for FreeBSD IBM PowerLinux and a no GUI package for Linux have the encoder executable named rubyencoder as it s mentioned below in the manual First run You need to read and accept the RubyEncoder 1 5 license during the first run of the encoder The License will only be displayed on the first run Please read it press the Enter Return key for the next page and finally if you agree with the license type AGREE and press the Enter Ret
32. e dirname _d if _dl _d then raise Ruby script MRS FICE RTT I s protected by RubyEncoder and requires the RubyEncoder loader Please visit the http www rubyenco der com loaders RubyEncoder site to download the required loader and unpack it into _d0 rgload er directory to run this protected script break else _d _dl end end require _f RGLoader load AAEAAAAEOAAAAIAAAAAA YTC NTZP8FnCp00d uHwMSVgcicoaW6ERaCNJzTN2xah6H 609f2eGRGZURBc9AJPFIOwkPt Z2Uc2o6gqTmfb4Dk69J305VgI20 Yz3ju02WIv3pGK3UDOMw MFuXAlp 7 8AL1Yy4FLawYTxZqzOTnsCQgOFObFkJhkidkgqAHHKdyf Y7FYON1Th1qOMT 1AWwOan2WIpMkbwbx13vykcvUpncSAAAAYAAAAPwjqwCB2fc7t jHyItPnulhcuoPtNMLr51 XrpsB9d1KIJVCO W IrJB4Y301HCvzSDsC7dJ Ak5LMBV fVHOgOV2153B2 2013 rubyencoder com Using of RubyEncoder 26 SgalIdFcllJ6ImqOJGBODpA jBya977eTnNLMDWAAAAAA Now a test run without a required license file gt ruby hello rb My error handler caught error code 9 with a message RubyEncoder Loader This script has expired Contact the script author about this problem Error code 09 2 2 8 Other options There are some other options available to pass to rubyencoder command line encoder credits b lt ext gt b x mask list Display version number Display full options list Display license information Display names of RubyEncoder developers Wait for k
33. er code or custom error code are still protected with CRC and should not be changed Different messages above indicate different validation stages that the loader performs before running the protected script RubyEncoder Loader Script checksum error The encoded file has been modified If this script requires a license file to run this error may be caused by an invalid license file Install the original unmodified file or contact the script author for getting the original file or license file Error code 12 This error message may be caused by the same reasons as the error messages above Additionally this error may happen when the protected script had been locked to an external license file but the wrong license file was installed on a target machine l e the license file was found by name but it is incorrect generated for a different project or just broken Therefore decryption of the protected script bytecode has failed It is important to use the same Project ID and Project Key values for the license file that were used for encoding the script Refer to the script locking options section in this user manual for details Do not change the protected script install the original file or re encode the script again If an external license file is used install correct license file for this project or generate a new license file with the same Project ID and Project Key values that were used for encoding the script RubyEncoder Loader This scr
34. etter performance and will use the time value from the time server for the other included scripts A list of available time servers may be found here Locking the script to work only online You may also use the time server option to lock your script to run only online Use the time server option as usual for this but don t specify an expiration date for the script The script will try to access the online time service and will fail if it s not possible domain lt domain gt You can bind the script to a domain name The encoder will lock the script to run only from the specified domain and all sub domains If an attempt is made to run the script on a non authorized domain the following error message will be displayed RubyEncoder Loader the script is not licensed to run on this machine or it is not running in a web server environment Run this script in a web server environment Contact the script author about this problem Error code 02 You may use this option more than once to specify multiple domains This option may not be used with the domain encrypt option Domain name locking supports wildcards You may lock to site com and so the script will work for aa site com bb site com etc and symbols are supported in the same manner as for specifying file masks Please note the loader will be able to check the domain name the protected script is running under ONLY in a web server environment The web server should provide the
35. ey press before exit Allows you to check encoding log in terminal before exit Display settings and request confirmation The encoder will display all encoding parameters and wait for a key press before any real encoding takes place You may check all parameters and cancel if anything is not correct Recurse subdirectories The encoder will recurse all subdirectories when searching files using a specified file mask IT IS IMPORTANT TO ENCLOSE FILE MASKS IN DOUBLE QUOTES Otherwise if file masks are not be enclosed in double quotes command line shell will expand file masks and recursion will not work as expected Set file extension for backup files bak is default You may change an extension used for backup copies with this option Example b old Disable backup of source files BE CAREFUL You may specify what files or directories shall NOT be encoded You may specify either a strict name relative path with a directory name or a mask with and or Example gt rubyencoder r x doc x config rb rb This will encode all rb files in the current directory and all directories 2013 rubyencoder com 27 RubyEncoder 1 5 User Manual f mask list o lt output_dir gt recursively but all files in the doc directory and all files and dirs if any named config rb will not be encoded You may enumerate all the files you want to exclude from encoding using a file list to specif
36. fied versions of Ruby otherwise you will get an error message for this file see below Example gt rubyencoder file1 rb gt rubyencoder ruby 1 8 ruby 1 9 ruby 1 9 2 file2 rb file3 rb file4 rb You may enumerate all the files you want to encode in a file list A file list is a text file with either full or relative file paths of all the files to encode separated by a new line masks are supported use and for it You should use an sign before the file list name in the command line Usage gt rubyencoder filelist When specifying a relative path don t use or directory specifiers It s possible to use shorter syntax for directory encoding All specified directories will be recognized and the file mask will be added gt rubyencoder r source_dir which will work as if a file mask was specified gt rubyencoder r source_dir You will see the log file printed in the terminal window during the encoding process A status message will be displayed for each encoded file You may get one of the following status messages ok The file was encoded without problem file not found cannot be read The specified file could not be found Check the specified file path Ruby syntax or other compiler The original file has syntax or other errors and thus cannot be error encoded Check your file test it with the Ruby interpreter This error may also appear when encoding for multiple versions of Ruby Please note your ru
37. formation from an external file you need to know and specify 2013 rubyencoder com 33 RubyEncoder 1 5 User Manual the project id 2 4 1 Usage Script information rginfo options file rb Options tag ip x x x x y y y y Target IP for decrypting Required to view information about scripts encoded with ip encrypt option tag domain domain Target Domain for decrypting Required to view information about scripts encoded with domain encrypt option projkey value Script Project Key for decrypting Required to view full information about scripts protected with an external license file when such a file is not available You need to specify the project key to decrypt the bytecode section and view information about the supported ruby versions and test the integrity of the bytecode If the protected script is locked to an external license file and this file is also available in the script s directory or parent directories then all information extracted from this external license file will be also automatically displayed License information rginfo options file lic Options projid value License Project ID for decrypting an external license file Required to view information about external license file generated with RubyEncoder License Generator Other options V Display version number h Display full options list l Display license information 2013 rubyencoder com RubyEncoder 1
38. he date with online time servers useful when locking to date is used option to assign a custom Ruby code to act as an error handler which will catch errors related to protected script loading or locking option to set a custom defined constant which may be read later from the protected Ruby code automatic backup of source files e multiple files processing enumerated file mask optionally with directory recursion or file list from the command line e option to exclude some files from encoding process enumerated or file masks e option to specify an output directory for protected scripts e encoding confirmation when run from the command line 2013 rubyencoder com RubyEncoder 1 5 User Manual e option to include Ruby code to run before a protected script This is best for including copyright information or for any other advanced needs e option to replace the standard error handler when the appropriate loader is not found Ruby code can be included here e Please see the change log for further details Cross platform Cross platform encoding A script encoded under one operating system will run under any other supported operating systems Currently we have an encoder for Mac OSX Linux FreeBSD and IBM PowerLinux Script Loaders will run under Mac OSX Linux FreeBSD IBM PowerLinux MinGW and Windows Also we have plans to support more operating systems for protected scripts execution Evaluation We provide a Free 1
39. imited licensing of products RubyEncoder Loader Script header is broken The encoded file has been modified Install the original unmodified file or contact the script author for getting the original file Error code 10 2013 rubyencoder com 41 RubyEncoder 1 5 User Manual RubyEncoder Loader Script is broken The encoded file has been modified Install the original unmodified file or contact the script author for getting the original file Error code 11 RubyEncoder Loader Script loader checksum error The encoded file has been modified Install the original unmodified file or contact the script author for getting the original file Error code 17 RubyEncoder Loader Decompression error status The encoded file has been modified Install the original unmodified file or contact the script author for getting the original file Error code 18 The RubyEncoder Loader performs a number of validation actions for the protected script before it runs the script The above message says that some validation has failed It may happen because the script has been changed possibly accidentally Any changes to the protected script are restricted for security reasons Nobody is allowed for making changes in the protected script even its author Do not change the protected script install original file or re encode the script again Unprotected areas of the script shell command loader code your custom head
40. install http www rubyencoder com loaders latest loaders Error code 19 Your protected script has been encoded with a newer version of RubyEncoder than the installed loader Download and install updated loaders from http www rubvencoder com loaders RubyEncoder Loader This script requires an internet connection to run The file has been encoded to run only when an internet connection is available Setup an internet connection Error code 20 The protected script was encoded with time server option or this option was specified for the external license file the script is bound to The RubyEncoder Loader is trying to connect to the specified time server s using TIME or NTP protocols If it is not possible to connect for any reason connection lost error etc the above error message will appear Check that the time servers specified for the protected script or script license file exist Use the RubyEncoder Information tool to know what time servers or any other options were specified during encoding We suggest that you specify a number of available time servers so your script can run even if some time servers are temporary down See the script locking options section in this user manual for details RubyEncoder Loader Insufficient memory Error code FF This may happen if the RubyEncoder Loader failed to allocate some memory RAM using standard library functions Check your system has enough free memory for running the protected scr
41. ipt RubyEncoder Loader does not need much free memory available so this error usually never appear Otherwise your system cannot work anyway without free memory available RubyEncoder Loader Internal error Something wrong happens during the protected script execution If you see this error please contact support to let us know about it support rubyencoder com Based on our experience in supporting RubyEncoder we must say that most protected scripts errors are caused by three factors absence of loaders modifications in the protected script or a script license or actions of locking options used during encoding As a final note we suggest you to use RubyEncoder Information Tool to know details about locking options for your scripts and script license files See using information tool section in this user manual for details 2013 rubyencoder com RubyEncoder 1 5 Advanced users 44 5 Advanced users Enter topic text here 5 1 Ruby shell scripts encoding RubyEncoder will keep the first line of the script unchanged if it begins with a UNIX shell script prefix e g V bin ruby This lets protected scripts run from the shell or as CGI scripts The first line of the script will not be encoded but the whole script including this line will be still protected with a checksum and so remains protected from unauthorized modifications 5 2 Marking a file to be skipped during encoding It s possible to mark a fi
42. ipt requires license file to run Contact the script author for getting a license file Error code 13 Protected script was encoded with external locking option and bound to an external license file That license file is required to run the protected script on a target machine Name of the license file should match the name specified during encoding Use RubyEncoder License Generator to create a license file and Install it on a target machine into the script s directory or any parent directory If the license file is already there check if the script has enough permissions to read the license file It is important to use the same Project ID and Project Key values for the license file that were used for encoding the script Refer to using scriptlicense generator section in this user manual for details RubyEncoder Loader Evaluation loader has expired This file has been encoded with evaluation version of RubyEncoder Please download and install http www rubyencoder com loaders latest loaders Error code 14 2013 rubyencoder com Errorsand common mistakes 42 The RubyEncoder Loader you installed on a target machine is expired This may happen only with the scripts encoded by the demo version of RubyEncoder Download and install updated loaders from http www rubyencoder com loaders RubyEncoder Loader Incompatible loader version The file hasbeen encoded with a newer version of RubyEncoder Please download and
43. ity to encode your script once and distribute to users with different licenses Each license may have a different number of locks You should specify only an external license file name here Example external script lic No real license file will be created for now You should use RubyEncoder licgen tool for creating a license file for the script When running protected scripts and no specified license file is found the script will come with the error message RubyEncoder Loader the script requires license file to run Contact the scrip author regarding getting a license file Error code 13 You may use this option only ONCE in a command line This option may not be used with any other binding options 2013 rubyencoder com 21 RubyEncoder 1 5 User Manual 2 2 5 projid lt value gt Allows you to specify a Project ID to identify your project This is to be used with external option You should use the RubyEncoder licgen tool for creating a license file for the script with the same Project ID projkey lt value gt Allows you to specify the Project Key to encrypt your project To be used with external option You should use the RubyEncoder licgen tool for creating a license file for the script with the same Project Key The algorithm used for locking a script to an external license file gives your scripts much stronger protection from reverse engineering unlocking and bytecode stealing but it also gi
44. l rubyencoder 1 5 evaluation bin gt chmod a x rubyencoder Run the encoder gt rubyencoder or if you are using zip Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded rubyencoder 1 5 evaluation linux i386 zip usr local Unpack gt cd usr local gt unzip rubyencoder 1 5 evaluation linux i386 zip Update permissions gt cd usr local rubyencoder 1 5 evaluation bin gt chmod a x rubyencoder Run the encoder gt rubyencoder Example full version Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded ruby encoder 1 5 linux i386 tar gz usr local Unpack gt cd usr local gt tar xzf rubyencoder 1 5 linux i386 tar gz Update permissions gt cd usr local rubyencoder 1 5 bin gt chmod a x rubyencoder licgen rginfo Run the encoder gt rubyencoder or if you are using zip Copy the downloaded file to the destination directory usr local You may use either OS interface or 2013 rubyencoder com 11 RubyEncoder 1 5 User Manual terminal to locate and copy the downloaded file gt cp your path to downloaded rubyencoder 1 5 linux i386 zip usr local Unpack gt cd usr local gt unzip rubyencoder 1 5 linux i386 zip
45. le Binary RubyEncoder Loader for Ruby 1 9 0 1 9 1 for Mac OSX platform It is a universal binary file compatible with 386 and x84_64 O 2013 rubyencoder com Running protected scripts 36 rgloader192 darwin bundle rgloader linux so rgloader19 linux so rgloader192 linux so rgloader linux x86_64 s0 rgloader19 linux x86_64 so rgloader1 92 linux x86_64 so rgloader freebsd so rgloader19 freebsd so rgloader192 freebsd so rgloader freebsd x86_64 so rgloader19 freebsd x86_64 so rgloader192 freebsd x86_64 so architectures Binary RubyEncoder Loader for Ruby 1 9 2 for Mac OSX platform It is a universal binary file compatible with i886 and x84_64 architectures Binary RubyEncoder Loader for Ruby 1 8 x for Linux i386 platform It is 32 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 9 0 1 9 1 for Linux i386 platform It is 32 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 9 2 for Linux i386 platform It is 32 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 8 x for Linux x86_64 platform It is 64 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 9 0 1 9 1 for Linux x86_64 platform It is 64 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 9 2 for Linux x86_64 platform It is 64 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 8 x for FreeBSD 8 x i386 platform It is 32 bit ELF shared object Binary RubyEncoder Loader for Ruby 1 9 0 1 9
46. le to be skipped by the encoder Add the following string anywhere in the code use comments Skipped files will be copied as is to the target folder if it s specified RubyEncoder DO_NOT_ENCODE E g RubyEncoder DO_NOT_ENCODE Note Comparison is case sensitive for Windows Do not change or mix the case for better code compatibility 2013 rubyencoder com RubyEncoder 1 5 Changelog 46 6 Changelog 6 1 Version 1 5 March 2013 Version 1 5 introduces GUI for RubyEncoder for Mac OSX Linux and Windows fixes problems and adds some new options The update is partly based on comments and suggestions of our users We were glad to receive comments and suggestions and want to thank you very much for sharing your ideas We are looking forward to hearing about other suggestions for improving RubyEncoder and we are open to new ideas Here is a list of recent version 1 5 changes NEW FEATURES e Specifying a target character encoding Target encoding may be specified during encoding in Advanced options in GUI or using the new encoding option in the command line RubyEncoder compiles source Ruby files to a binary representation as a result magic comments cannot be used to specify character encoding of source files Please use this new RubyEncoder option when you encode files that have magic comments for specifying the character encoding e Rails compatibility option A new Rails compatibility option was adde
47. lelist You may run the RubyEncoder 1 5 encoder to encode either one or multiple files You may enumerate all files you want to encode or use a file mask or file list to specify multiple files A file list is a text file with either full or relative file paths of all the files to encode separated by a new line You should use an sign before the filelist name in the command line A file list passed to the RubyEncoder encoder for batch processing from the command line may contain file masks Standard and symbols are available The encoded file will replace the original file The original file will be backed up with a bak extension by default until you turn off the backup facility with a b option If o option is used to specify output directory the original file will not be backed up Instead of it the O 2013 rubyencoder com Using of RubyEncoder 16 original file will be copied to the output directory and encoded there ruby lt version x y gt RubyEncoder will encode scripts for Ruby 1 8 x by default Use ruby option to specify versions of Ruby you need to encode scripts for Available values for ruby option are 1 8 1 9 encoding for 1 9 0 1 9 1 1 9 2 encoding for 1 9 2 1 9 3 To encode a script to run under Ruby 1 8 x and 1 9 x use the ruby option as many times as you need to specify all versions of Ruby you need to run protected files under Please note your script s should be compatible with all speci
48. mode was not used Only Ruby files can be encoded anyway 2013 rubyencoder com Using of RubyEncoder 22 p code Prepend header code You may put any code to be inserted BEFORE the protected scripts code This code WILL NOT BE ENCODED This should be syntactically correct Ruby code Of course it may by Ruby comments starting with a symbol This option is usually used for including copyrights into protected scripts Also this option is used to put a custom error handler code into protected scripts see catch option You should prepend all special characters including double quote characters with a back slash if you want to include them into the code becomes Example 1 gt rubyencoder p My protected script Copyright by My Name file rb Example 2 gt rubyencoder p puts My protected script Copyright by My Name file rb All user constants that are defined in locking options will be replaced in the header code Also some standard RubyEncoder constants may be used RG_DATE current date i e date of encoding RG_LICENSEE RubyEncoder license owner from the RubyEncoder license file It works in the same way also for licgen and do replacements for custom text if it is used See details j code By default a RubyEncoder protected script will generate an exception with the following message when the RubyEncoder Loader is not installed Ruby script is protected by RubyEncoder
49. nd line options e g rb 2 2 9 Excluding files from encoding but still copying to output directory We have added an option into the command line encoder to specify which files should be encoded f You may specify what files will be encoded specifying their filenames filemasks or filelist All other files which have been added for processing or found by expanding filemasks will be copied to the output directory as is without encoding If you don t specify the f option then all specified files will be encoded by default Example 1 gt rubyencoder r f rb o output_dir All with recursion rb files from the current directory will be encoded and copied to output_dir All other files from the current directory will be copied to output_dir as is unencoded You may specify multiple file names or file masks adding more than one f option Example 2 gt rubyencoder r f rb f includes inc f myfiles o output_dir If you don t specify the output directory but use f option then only files specified with f option will be encoded All other files will remain unchanged Also it s possible to permanently mark files for skipping from encoding See details 2 2 10 Excluding files by the file mask You may exclude some files or directories from encoding when use the command line encoder Please use exclude mask option to specify file s and or dir s to exclude from processing You may specify either a stric
50. ntents may be loaded from a file text textfile All the constants replacements will be done in that case too File information tool full version The Information Tool is an external tool for vewing protected scripts and script license files details You may find the rginfo executable in the RubyEncoder installation directory in bin subdirectory Running the information tool without any options prints a list of all available options for a quick help Please refer to this user manual for details on using the information tool You may get information about protected scripts or an external script license This may be useful for supporting your customers checking scripts or licenses passed to them etc You may know the encode date expiration date locking options etc that were used during file encoding or script license generation You may pass the encoded script name or script license as a parameter to this tool Script information rginfo options file rb License information rginfo options file lic You might need to specify a project key projkey target ip tag ip and or target domain tag domain to let the script information tool decrypt the encoded file and display the info Also you need to specify the project id projid value to decode and display the script license information It s possible to display script information only for scripts created with the same installation of RubyEncoder To display script license in
51. oader in order to run The RubyEncoder Loader is a compiled Ruby module which is automatically loaded and used to run the protected scripts RubyEncoder Loaders are binary files that differ for OS and platform See the protected scripts loaders section below to know more about Ruby Encoder Loaders To protect your scripts from unauthorised usage RubyEncoder 1 5 has added features that can optionally lock your scripts to run only from predefined IP addresses domain names or LAN hardware addresses MAC RubyEncoder 1 5 can also easily produce trial versions of your scripts by setting an 2013 rubyencoder com RubyEncoder 1 5 User Manual expiry date for the script or by limiting the number of days that protected script will work With RubyEncoder 1 5 you may optionally lock your scripts so that they require a special license file in order to run This file may be distributed with the script or separately from it and this option gives you an opportunity to encode your scripts once and distribute to users with different licenses Each license may have different and specific attributes The RubyEncoder license generator tool may be used to create a license file directly on your server This lets you easily provide your customers with a license file for your product in the moment of purchase or downloading of a trial version of your product Protected code This sample Ruby code puts Hello World Becomes like thi
52. omain name The encoder will lock the script to run only from the specified domain The encoder will use a specified domain name as a part ofthe key for encryption for the maximum protection The loader will not be able to decrypt a script from the wrong domain and will display the error message RubyEncoder Loader Loader script checksum error The encoded file has been modified Ifthe script requires a license file to run this error may be caused by an invalid license file Install the original unmodified file or contact the script author about getting the original file or license file Error code 12 You may use this option ONLY ONCE in a command line This option may not be used with the domain option Be careful when using this option if you may possibly need to run your protected script from a sub domain Example domain encrypt mydomain com will allow you to run the script ONLY from mydomain com and not from www mydomain com and vice versa Domain name locking supports wildcards You may lock to site com and so the script or external license will work for aa site com bb site com etc and symbols are supported in the same manner as for specifying file masks Please read the above comments about SERVER_NAME and HTTP_HOST environment variables This is also applied for domain encrypt option ip lt X X X x y y y y gt Bind script to an ip mask The encoder will lock the script to run only from the specified IP address
53. or indirectly by this document RubyEncoder 1 5 User Manual Table of Contents Foreword Part I Introduction 2 About RubyEncoder incio anal anne aaa a Eira 2 2 HOW tO DUY onaniar aaa Er En AA KEA TETERE AT 2 NAAA E A A 2 Part Il Using of RubyEncoder 7 1 Command line tools installation uurnsussaanunnannnnnnnnnannnnnannnnnnnnnannnnnannnnnnnnnannnnnnnnn nen 7 FreeBSD Linux Mac OS X Windows IBM PowerLinux 2 Running the command line encoder Note Tor G l sers 2 22 Es iii Firstrun eu Usage iiem Locking options full version only Advanced options uusussnsonnannennunnnannnnn CUSTOM prodefined Constants 2 ae Custom rro Oi da Other options Excluding files from encoding but still copying to output directory ncnnccnnninnannnananinananananananaananara naci n 28 Excluding files by the file MASK uuusussnssnsansannunnunnunnunnennunnsnnnunnunnunnunnunnnnnnnnnnnsansunsnnnunsnnnunnunnennunnnnnnannannannunnnnnnn Encoding directory content without specifying filemasks Output directory for encoded scripts c ommmmcicinnnninnc er 3 Script license generator full version coomccoonnnoonncccnncnonnnenancnconnnnnnnnnnnnrnnnnnnnnnnrnnanrrnnnrennnes Usage 5 A EE E A A T E 31 4 File information tool full version ooomcconnccoonnnconnnccnnnnonancnnnnnnonnrnnnnnnnnncnnnnnrnnnnrnnnnrrnnnrenanes 32 A vecewsuocybistevceuvsstess ducervaceesdouswssedeudecvsceeed
54. orgotten They are required for generating licenses for your customers When generating the Project Id and Project Key manually please use different values for Project ld and Project Key Usage licgen options output lic expire lt dd mm yyyy gt Set script expiration date days lt nn gt Set script expiration days from today domain lt domain gt Bind script to domain name ip lt x x x x y y y y gt Bind script to ip mask MAC lt X X X X X X gt Bind script to mac address Con Work only with other encoded files projid lt value gt Set project id required the same as for encoding projkey lt value gt Set project key required the same as for encoding const name value Set custom defined constant time server lt server server gt Set time server for expiration date check text text file Add plain text into the license file l Display Ruby Encoder license information for the tool itself W Wait for key press before exit V Display version number h Display options help output lic This is the name of the license file to generate It should be the same that you used in external option during the encode It is possible to run the licgen tool with only a license file name but without any other locking options specified It will generate the license required to run your scripts encoded with external option but no locking will be applied to the protected scripts To enable locking wi
55. otected script during the protected script execution Interface A powertul cross platform command line encoder is available for FreeBSD and IBM PowerLinux Versions for Mac OS X Linux and Windows include a graphical user interface for the encoder and tools 2013 rubyencoder com Introduction 4 Locking To protect your scripts from unauthorised usage RubyEncoder 1 5 has added some features that can optionally lock your scripts to run only from predefined IP addresses domain names or LAN hardware addresses MAC RubyEncoder 1 5 can also easily produce trial versions of your scripts by setting an expiry date for the script or by limiting the number of days that the protected script will work To protect against local date change for trial version of your protected scripts there is an option for time checking with atomic online time servers With RubyEncoder 1 5 you may optionally lock your scripts so that they require a special license file in order to run This file may be distributed with the script or separately from it and this option gives you an opportunity to encode your scripts once and distribute to users with different licenses Each license may have different and specific attributes The RubyEncoder license generator tool may be used to create a license file directly on your server This lets you easily provide your customers with a license file for your product at the precise moment of purchase or downloading of a
56. r for Linux includes GUI and an installer Command line encoder and tools are included and already installed if you used the installer You may fond them within RubyEncoder installation folder Note the command line encoder is named rgencoder in the GUI installation to distinguish from the GUI application If you use a no GUI package which is useful if you don t run X server on your Linux you may follow the below instructions for installing the command line encoder and tools on your Linux You need to unpack the downloaded encoder installation file into any directory you wish For Linux we suggest that you install into the usr local or any user home directory home username The following instruction is expecting you use a terminal for installation The downloaded encoder file may have the following names according to the OS platform and version of the encoder rubyencoder 1 5 linux i386 tar gz or zip or tar bz2 rubyencoder 1 5 evaluation linux i386 tar gz or zip or tar bz2 Example trial version Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded rubyencoder 1 5 evaluation linux i386 tar gz usr local 2013 rubyencoder com Using of RubyEncoder 10 Unpack gt cd usr local gt tar xzf rubyencoder 1 5 evaluation linux i386 tar gz Update permissions gt cd usr loca
57. r generate a new license file with the same Project ID and Project Key values that were used for encoding the script Refer to the script locking options section in this user manual for details RubyEncoder Loader This script does not support version of Ruby Please contact the script author about this problem Error code 07 RubyEncoder supports encoding for multiple versions of Ruby You need to use the ruby option for this in the rubyencoder command The above message says that the script was not encoded for the version of Ruby currently running the script This may happen for example if you encode the script for Ruby 1 8 ruby 1 8 option and try to run it under Ruby 1 9 Make sure the script is encoded for the version of Ruby on your target server and that it is compatible with that version of Ruby otherwise you will get an error message during encoding Please note if you do not specify ruby option in rubyencoder command your scripts will be encoded only for Ruby 1 8 x which is the latest stable version at the moment of writing this manual RubyEncoder Loader This script has expired Please contact the script author about this problem Error code 09 The protected script was encoded with an expiration date set for the script or external license file The above message says that the period of using the script has expired and you cannot use this script anymore Examples of this use are for creating demo versions of for time l
58. requires an internet connection to run ERR_ALL ERR_ALL is a special value to specify one for all error handler function The custom error handler function should be defined before an error may occur The best place for it is in prepend header code as it s loaded before any license checking is done and so the error handler will be always available if defined there But you may also define a custom error handler function in another encoded file which will be run before the script which may cause a license error Don t put any passwords or secret data if you use a prepend header code for defining an error handler as this code is stored unencoded Example Encode ruby script with defined prepend header containing definition of my_err_handler function Please note additional back slashes 1 are used to quote special character in command line gt rubyencoder p def my_err_handler code msg printf My error handler caught error code d with a message s n code msg end catch ERR_ALL my_err_handler external script lic projid Fg3161jd projkey 826Gdb31 hello rb The encoded script will have the defined code as unencoded in the beginning RubyEncoder v1 0 def my_err_handler code msg printf My error handler caught error code d with a message s n code msg end _d _d0 File expand path File dirname __FILE__ while 1 do _f _d rgloader loader rb bre ak if File exist _f _dl Fil
59. rial versions of your products and to lock scripts to your customers machine This is the most powerful and flexible way to protect your scripts We recommend that you use external license files for all your script protection A brief description of the algorithm The algorithm uses an idea of two keys The first key Project Id is stored in the encrypted area of the protected script and is used to decrypt an external license file The second key Project Key is stored in the license file and it is used to decrypt the bytecode from the protected script Using this algorithm the encoder protects your product by preventing a full working copy from being created from for example a demo version To decrypt and run a protected script a true license file for the full version of your product is required Otherwise it s impossible to decrypt and run the bytecode Project Id and Project Key values are required if the external license protection method is chosen You should specify Project ld projid and Project Key projkey values using options in the command line for rubyencoder commands Project ld and Project Key may be any words numbers or random sequence but for security reasons these two values should not be calculated from each other They should be independent Also you should specify the same Project Id Project Key pair for licgen command when generating a license for previously protected scripts Command line example gt rub
60. rminal to locate and copy the downloaded file 2013 rubyencoder com 13 RubyEncoder 1 5 User Manual gt cp your path to downloaded rubyencoder 1 5 evaluation powerlinux tar gz usr local Unpack gt cd usr local gt tar xzf rubyencoder 1 5 evaluation powerlinux tar gz Update permissions gt cd usr local rubyencoder 1 5 evaluation bin gt chmod a x rubyencoder Run the encoder gt rubyencoder or if you are using zip Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded rubyencoder 1 5 evaluation powerlinux zip usr local Unpack gt cd usr local gt unzip rubyencoder 1 5 evaluation powerlinux zip Update permissions gt cd usr local rubyencoder 1 5 evaluation bin gt chmod a x rubyencoder Run the encoder gt rubyencoder Example full version Copy the downloaded file to the destination directory usr local You may use either OS interface or terminal to locate and copy the downloaded file gt cp your path to downloaded rubyencoder 1 5 powerlinux tar gz usr local Unpack gt cd usr local gt tar xzf rubyencoder 1 5 powerlinux tar gz Update permissions gt cd usr local rubyencoder 1 5 bin gt chmod a x rubyencoder licgen rginfo Run the encoder gt rubyencoder 2013 rubyencoder com Using of RubyEncoder 14
61. root folder To run protected scripts on a target machine you need to copy the rgloader directory with its full content from the RubyEncoder main installation directory to the protected script directory on a target machine If your project consists of multiple directories with protected scripts in them you may copy the rgloader directory into your project s top directory protected scripts will be able to find the loaders there If you use an FTP client for file transfer make sure you use FTP BINARY mode for uploading loader files to the target machine It is not required to upload loaders for all supported platforms You may upload loader rb helper script and one required loader See the next section for details about naming the loader files GUI has a built in Loaders Installer which you may find in the File menu rgloader directory structure The following provides an overview of the rgloader directory which is a required location for RubyEncoder Loaders and loaders file naming conventions loader rb This file is a Ruby script which helps to automatically identify the required loader This is a required file for installation on a target machine where protected ruby scripts will run It is open and not encoded but you do not need to change it rgloader darwin bundle Binary RubyEncoder Loader for Ruby 1 8 x for Mac OSX platform It is a universal binary file compatible with 386 and x84_64 architectures rgloader19 darwin bund
62. ruby Version 1 5 User Manual Copyright 2013 rubyencoder com Introduction An introduction to RubyEncoder by RubyEncoder Team This RubyEncoder User Manual covers all of the features in this new exciting product We hope that you enjoy using our product and find this user guide to be informative If there is anything that you feel has been omitted from this user manual then please let us knowas we are passionate about providing excellent service Have fun using your new product RubyEncoder 1 5 Copyright 2013 rubyencoder com All rights reserved No parts of this work may be reproduced in any form or by any means graphic electronic or mechanical including photocopying recording taping or information storage and retrieval systems without the written permission of the publisher Products that are referred to in this document may be either trademarks and or registered trademarks of the respective owners The publisher and the author make no claim to these trademarks While every precaution has been taken in the preparation of this document the publisher and the author assume no responsibility for errors or omissions or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it In no event shall the publisher and the author be liable for anyloss of profit or any other commercial damage caused or alleged to have been caused directly
63. s after encoding by RubyEncoder 1 5 RubyEncoder v1 5 _d _d0 File expand_path File dirname __FILE__ while 1 do _f _d rgloader loader rb bre ak if File exist _f _dl File dirname _d if _dl _d then raise Ruby script ty FILE AMi i s protected by RubyEncoder and requires the RubyEncoder loader Please visit the http www rubyenco der com loaders RubyEncoder site to download the required loader and unpack it into _d0 rgload er directory to run this protected script break else _d _dl end end require _f RGLoader load AAEAAAAFaAAAATAAAAAA 4B5q 17q0E9uti30t 9BI 31n8T3mAjkfIJgZIWWw35emHS4pdu70qVgASS159 rPoG8F RRGM sZCz2R1Jno4TGXP 3JZsnHBs ft X NeKgoTYNYLUYCxbBaQAHYcx6avkVOxnmsgH axvmEgAAAGAAAAB75w3gzOZOCmvQDu0Os G9ZV hz0GbAyloT4inJTT83IijyjJ0iubOUfKRn2 f rb7QOm3dEXGqgUtKkGzz2yaCE0T9yV1VOZtZv4RKezGylUJdYtDb41rk0t8S9FRL BYnwAYAAAAA Supported Ruby versions RubyEncoder 1 5 supports encoding for Ruby 1 8 6 1 8 7 1 9 0 1 9 1 1 9 2 and 1 9 3 The encoder can encode your Ruby files for multiple versions of Ruby at the same time When encoding for multiple Ruby versions your Ruby scripts must be compatible with Ruby 1 8 x and 1 9 x language RubyEncoder writes separate bytecodes into the protected script for each version of Ruby The RubyEncoder Loader will extract and run the required version of bytecode from the pr
64. t name relative path with a directory name or a mask with and or wildcard symbols UNIX users Always quote masks under UNIX Otherwise your shell interpreter will replace the specified file mask with real file and directory names and the result may be unexpected You should always quote masks that specifies files to encode too like rb in the example below Example rubyencoder r exclude doc exclude config rb rb This will encode all rb files in the current directory and all directories recursively but all files in the doc 2013 rubyencoder com 29 RubyEncoder 1 5 User Manual 2 2 11 2 2 12 2 3 directory and all files and dirs if any named config rb will not be encoded You may enumerate all the files you want to exclude from encoding using a file list to specify multiple files A file list is a text file with either full or relative file paths of all the files to exclude separated by a new line masks are supported use and or wildcard symbols Specify the sign before the filelist name in the command line e g x filelistname Encoding directory content without specifying filemasks It s possible to use shorter syntax for directory encoding All specified directories will be recognized and the filemask is added gt rubyencoder r source_dir Output directory for encoded scripts You can specify an output directory for all encoded scripts when encoding from command
65. th the external license file please read below about script locking options All locking options work the same as similar options of the rubyencoder executable You may use a double dash instead of the output file name in order to send licgen s output to console instead of a file which may be useful for automating license generation when running licgen on the server side Locking options 2013 rubyencoder com Using of RubyEncoder 32 2 4 Most of the options work exactly the same as options of the encoder Please refer to the Script locking options section for further details Custom constants You may add custom constants to license files exactly the same as you do it with the encoder Please refer to the Custom predefined constants section for further details Options unique to the license generator text text This option lets you add custom text that will be embedded as is into the license file The text is protected with a checksum against modification You may include any text such as user information license description etc All user constants that are defined with the const option above will be replaced in the text Also some standard RubyEncoder constants may be used RG_DATE current date i e date of encoding RG_LICENSEE RubyEncoder license owner from the RubyEncoder license file It works in the same way also for the custom header in protected scripts See details The text co
66. the loader rb helper script from it however the loader required for your platform was not found Please check if your platform is supported and install an appropriate loader file to the rgloader directory you have RubyEncoder Loader This script is not licensed to run on this machine or it is running out of web server environment Run this script in web server environment Please contact the script author about this problem Error code 01 The protected script was encoded with the ip locking option and has bound the script to some IP address es When the script is run on a web server running a different IP address the above error message will appear Check the IP address of the machine running the script Check the script is running in a web server environment and the server IP address is available as an environment variable for the script See script locking options section in this manual for details RubyEncoder Loader This script is not licensed to run on this machine or it is running out of web server environment Run this script in web server environment Please contact the script author about this problem Error code 02 2013 rubyencoder com Errorsand common mistakes 40 The protected script was encoded with a domain locking option and has bound the script to some domain name s When the script is about run on a web server running a different domain the above error message will appear Check the domain n
67. ubyencoder com
68. unctevudsudsedubsdesevdervesees ss 33 Part Ill Running protected scripts 35 Installing loaders 2 2 2a tee eet ne Endes 35 2 rgloader directory structure unnsennernnnnnnnnnnnnnnennnnnnnennnnnnnnenn nene racer nn 35 Part IV Errors and common mistakes 38 Encoded scripts modification nnsenneennnnnnennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnen nn anne mennun mennan nnmnnn nnna 38 2 Error messages during encoding uurrssnnsnnneennnnnnennnnnnnennnnnnnennnnnnnnnnnnnnnennn nennen nn nnmnnn nnmnnn 38 3 Error messages when running protected scripts uuuurssnnnnnnennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn anne 39 Part V Advanced users 44 1 Ruby shell scripts encoding 0cecccceeeeeeeeeeeeeeeeeeeeseeeeeeeseeeeeenseeeeneeseeeeeeeseeeeeeeseeeeeeeseeeseeess 44 2013 rubyencoder com Contents Il 2 Marking a file to be skipped during encoding uusrrsennnnnnennnnnnnnnnnnnnnnnnn anne nenn anne nennen 44 Part VI Changelog 46 1 Version 1 5 M rch 2013 2 2 lee 46 Index 48 2013 rubyencoder com RubyEncoder 1 5 Introduction 2 1 Introduction 1 1 About RubyEncoder ruby RubyEncoder has been built as professional system for source code protection Our team of programmers some of whom programmed and developed the successful SourceGuardian PHP Encoder www sourceguardian com have created proprietary methods for encrypting code whilst keeping the maximum flexi
69. urn key on the last page when asked It is a requirement that you need to accept the license terms in order to continue If the RubyEncoder 1 5 license is accepted you will receive a web link to our site and a hexadecimal registration code on the screen You need to visit the following URL http www rubyencoder com and login using the username and password we provided to the specified email account provided during your download or purchase If the username and password are correct you will be logged into the My Account area Once you have entered the system select the hexadecimal registration code that was displayed earlier by the RubyEncoder application Copy and paste this into the corresponding field of the My Account area on our site Enter registration key in the Available licenses section When you have have done the above click on Create License and this will generate a license Download will start automatically If it does not start then click on the Download link in the Available licenses section Save the license encode lic file that is created and copy it into the command line encoder installation directory into bin subdirectory Usage Run the rubyencoder executable without parameters to get a list of all available options single file rubyencoder options file rb multiple files rubyencoder options file1 rb file2 rb file3 rb file mask rubyencoder options rb file list rubyencoder options fi
70. urns the loader version number RGLoader get_const encode_date Returns the UNIX timestamp when the script was encoded RGLoader get_const license_date Returns the UNIX timestamp when the script license was created It s may differ from encode_date when external script license is used RGLoader get_const expire_date Returns script expiration date as UNIX timestamp if it s defined in the script license or internally via script binding options during encoding 2 2 7 Custom error handling catch err function You may add custom error handling functions which will catch script licensing errors The Error handler should be a function which accepts two parameters error_handler code message You may use any name for this function Also you may have different functions for different script errors The first argument will contain an error code The second one will contain a default error message To set a custom error handler use catch option for the rubyencoder command gt rubyencoder catch err function myscript rb 2013 rubyencoder com 25 RubyEncoder 1 5 User Manual Where err is one ofthe predefined constants and function is an error handler function name Err Code Default message ERR_LICENSE 01 02 03 script cannot run on this machine ERR_EXTLICCRC 06 script license is invalid ERR_EXPIRED 09 script has expired ERR_EXTLIC 13 script requires license file to run ERR_OFFLINE 20 script
71. ves you the most flexible way to generate trial versions of your products and to lock scripts to your customers machine This is the most powerful and flexible way to protect your scripts We recommend that you use external license files for all your script protection Please read further details in the Using external script license generator section of the manual Important Security Notice Keep your Project Id and Project Key values in a secret Remember your Project ld and Project Key It s impossible to restore the values if forgotten They are required for generating licenses for your customers 1 When generating the Project Id and Project Key manually please use different values for Project Id and Project Key Advanced options encoding lt encoding gt Specify a target character encoding for ruby 1 9 x code RubyEncoder compiles source Ruby files to a binary representation as a result magic comments cannot be used to specify character encoding of source files as they are read on the running stage not during compilation Please use this RubyEncoder option when you are encoding files that have magic comments in the code for specifying the character encoding E g encoding UTF 8 rails Enables Rails compatibility which lets you encode all Rails rb files Normally you can encode only application controllers model and helper files Other files if encoded would not work under Rails if the Rails compatibility
72. y multiple files A file list is a text file with either full or relative file paths of all the files to encode separated by a new line masks are supported use and for it You should use an sign before the filelist name in the command line Usage x filelistname When specifying a relative path don t use or directory specifiers You may specify what files will be encoded by filenames file masks or a file list All other files which have been added for processing or found by expanding file masks will be copied into the output directory as is without encoding If you don t specify the f option then all specified files will be encoded by default Example 1 gt rubyencoder r f rb o output_dir All with recursion rb files from the current directory will be copied and encoded into the output_dir All other files from the current directory will be copied into output_dir as is unencoded You may specify multiple filenames or file masks with using of multiple f options Example 2 gt rubyencoder r f rb f includes rb f myrubyfiles o output_dir If you don t specify the output directory but use f option then only files specified with f option will be encoded All other files will remain unchanged You may enumerate all the files you want to encode in a file list A file list is a text file with either full or relative file paths of all the files to encode separated by a new line m
73. y previous lock set with expire option timeserver lt server server gt If you use a time lock option for your scripts you may wish to let the script get the world time from the online time service for expiry checks rather than using the server time You may specify a list of time services during encoding Use time server option to specify time servers You may specify multiple servers IP addresses or domain names separated with or The TIME protocol is used TCP on port 37 on remote server Also NTP protocol is used UDP on port 123 on remote server NTP will be tried first 2013 rubyencoder com Using of RubyEncoder 18 If you have used a time server option then your script will require an internet connection to run Time servers will be checked in the specified order If no server from the list can be accessed an error message will be displayed and the script will stop execution RubyEncoder Loader the script requires an internet connection to run The file has been encoded to run only when an internet connection is available Setup an internet connection Error code 20 It s a good idea to specify 2 3 time servers which will let your script work even if some of the time servers will be temporary down If you have multiple scripts included from each other and some of them were encoded with a time server option then the script will access the time server only once for the first script for b
74. yencoder external script lic projid 82Gi17Bn projkey Az973Qq9 myscript rb gt licgen projid 82Gi17Bn projkey Az973Qq9 days 7 script lic If you have licenses for multiple RubyEncoder installations you may encode scripts on one machine and generate license files on another machine The only requirement is to use the same Project Id and Project Key values for your project on different machines If a script is run with an incorrect license file the following error message appears RubyEncoder Loader a license file required to run this protected script is invalid Contact the script author regarding getting a license file Error code 06 If a script is run with a license file with the correct Project Id but incorrect Project Key this may be a cracking attempt or accidental modification of the license file or script the following error message appears Ruby Encoder Loader Loader script checksum error The encoded file has been modified If the script requires a license file to run this error may be caused by invalid license file Install original unmodified file O 2013 rubyencoder com 31 RubyEncoder 1 5 User Manual 2 3 1 or contact the script author regarding getting the original file or license file Error code 12 Important Security Notice Keep your Project Id and Project Key values in a secret Remember your Project ld and Project Key It s impossible to restore the values if f

Download Pdf Manuals

image

Related Search

Related Contents

Télécharger le dossier de presse  User Manual Thunderbolt™ Product  T'nB NEDIMUB400 equipment cleansing kit  HIDコントローライグナイタキット取扱説明書  CTX590 - Triplett  ABC Office 4107 CC Paper Shredder User Manual  Mercury_2-stroke_manual_PART2    H/350  NOVITà 2013 Cleanic® Light  

Copyright © All rights reserved.
Failed to retrieve file