We have created some list that can be thought of a comparison "we with others" - just go to product page and scroll to the list of features - all features marked with "unique" are really unique to our product (and are absent in any other).
We recommend you to test our product yourself and make a decision. We have a trial that lets you fully evaluate it and even apply to your project. Such evaluation will reveal all flexibility and power of our product; the only limitation during evaluation is that all symbols can only prefixed with a same prefix. However, this allows to fully evaluate syntax support, support for exceptions, support for javascript embedded into html. Also, projects created during evaluation can be opened by a non-trial version of our product, so you won't waste the time spent during evaluation at all - your product will already be prepared for protection, and applying production-level protection will be a single click on "Build, Rebuild all" in non-trial edition of our product.
But it is greatly not recommended to apply just encoding since it makes protection of your code much weaker.
Also GUI allows to create buildscripts - Perl scripts that can perform building/clearing output/rebuilding changed files in your project. So once your project options are "stabialized" you will be able to rebuild your entire project (or only changed files) from commandline too.
Stunnix Perl-Obfus is written in Perl programming language. It is Perl code, but it's protected from analysis and illegal reuse using our perl obfuscation tool - Stunnix Perl-Obfus. We greatly recommend all professional Perl programmers to use it for their projects in order to protect their intellectual property.You probably got an impression that it requires internet connection because your firewall warns that program tries to connect to internet; the firewall you use is incorrect and badly written, address 127.0.0.1 is local; every computer has it as address of itself, independant of the fact whether it's connected to the internet or not. This special address is for special "loopback" network interface card accessible only from the same computer; programs from other computers will even be unable to know that Project Manager and Stunnix Perl Web Server are running and will be unable to communicate with it in any way, so it's safe to run Stunnix Perl Web Server (and Project Manager ) even on computer directly connected to the Internet. But of course Internet connection is not required in order to use Project Manager.
Then you have to create a new mode using Project → Options (using 'BASE' as parent mode for the newly created mode, enter the name of a file with exceptions (there is no need to specify directory name!) into entry (at the bottom of that page) with title "space-separated names of files to get list of exceptions from" and check a checkbox to the left of it (this will mean that the value of this option overrides the value in parent mode), click Save and then go to Project -} Files, put a checkboxes near files you wish these exceptions to be applied to, then select a name of the newly-created mode in the popuplist at the bottom and click Assign processing mode button. Then of course you will have to rebuild the project.
Please do Project, Options and click "Delete project" button. Please see answer for a related question. The left checkbox behind some form element in the Project-}Options specifies whether the value of the option overrides the same value of it from the parent mode (if checked - it overrides, if unchecked - the value of this option from the parent mode is used).Go to Settings, Edit modes present in the project.., click on "standard: treat as raw code " item in the list, scroll to bottom, in "File-related options " section, find entry "name of file with text to be prepended to the output" put
banner.txt
into it and put a checkbox to the left of it (IT'S VERY IMPORTANT - this tells that we override
the same setting in the parent mode) and click Save.
To export project, open it, then do Project-}Export as native. What you
export this way is a list of files and the options for modes.
To import it - just do Project-}Import.
Project file is stored inside your user's directory - the name of file it's stored in can be seen by going to Project-}Options (there is a small-printed file location there). You can just copy that file from/to somewhere (and it's OK to rename it, keeping extension).
Also you will have to backup "project state directory" (specified in project-}options) - it contains exceptions, antiexceptions and symbol mapping information.
Your project (and exported form of it) contains path to the project input, project output and project state directory. If you'll want to relocate these directories to different locations (e.g. after importing project), just go Project-}Options and edit paths there. Due to this fact it's adviceable to give directories as relative paths relative to project's input directory - this way you'll have less strings to edit when relocating your project.
eval("use Tk;");
This bug can appear with some other modules too, the way to fix it is the
same.
Process your code with jamming and encoding disabled. It's better to use Prefix symbol name mangler too.
Then edit the output file, and insert lines like
BEGIN { print STDERR "we are still alive at line " . __LINE__ ."\n"; }
at the top level of the file (i.e. outside all subs) rather often (e.g. on every 1000th line).
Then run the script and find the interval of lines it dies on. Insert such BEGIN lines
more often inside that interval of lines, to find the line that crashes perl as precisely
as possible. Then try to change anything in the lines corresponding to those lines in
output file or send us that piece for inspection.
You can enable assertion for one of the files though.
First you have to create a new processing mode that will inherrit all settings from "main" mode, but add assertion. To do this, go to Settings, "Edit modes present in the project..,", "Create new mode", give it some title, e.g "files with assertion", specify as parent mode this mode :" standard: treat as raw code",Then scroll to the group "Ensuring licensing conditions using generic asserters", configure licensing conditions in that section, and put a checkbox near each control there, since otherwise the value of controls will be ignored. Then scroll to the bottom and click Save to complete creation of the new mode.
Then go to Settings, "For files - assign modes to project's files, add/remove files.. ", put a checkbox near file you wish to enable asserters in, and select "files with assertion" from drop down list and click "Assign processing mode".
Create a file named "myasserter.txt" in the project's input directory and fill it with asserter's code. E.g. put code like this into it: {#asserter that prevents program from running on Sundays
use POSIX;
if ((localtime(time()))[6] == 0) {
print STDERR "You are not allowed to run this script on Sundays!";
#do anything else like deletion of program'siles
exit 0;#just call exit(0) to break program execution in case of violation
};
}
Suppose you wish to enable assertion of licensing conditions for all files in your project. If you wish to enable assertion of licensing conditions only for some files in your project, see question above.
Go to Settings, "Edit modes present in the project..,", click on either the 'standard: treat as raw code' (if enabling assertion for each file) or the mode you've just created as explained in previous question.
Scroll to the group "Ensuring licensing conditions using generic asserters", select "Take code from file" and check a checkbox to the left of this popup list. Put a checkbox to the left of entry "Name of file (relative to project's input directory)" below, and put a name of file "myasserter.txt" in that entry. Then click Save at the bottom of the page.