I'll admit I was very skeptical about the obfuscator, but I tried it and was really pleasantly surprised.
A few comments:
- The first thing I noticed is that the minute I opened the Chrome Developer Tools, the program paused in Debugger and I could not restart it except by closing the Developer Tools.
Each time I tried to close the debugger (clicking on the blue 'Run' icon), a new instance of the debugger opened:
Trying the same procedure with non-obfuscated code worked as expected - the debugger did not trigger unless called.
2) The obfuscator does an excellent job at hiding the program flow, but does not hide variable and function names which are usually descriptive of their use. For example, a list of variables being initiated in the obfuscated code:
My previous method of obfuscation was to run the .nsx file through a routine that substitutes a 3 character code for every variable, object ID, and function name. Like this:
So I ran my routine and then compiled again using the new obfuscator. That list of variables became:
and a function went from
3) The other method I use to hide code is the substitution of an upper case 2 letter code for long statements or Ajax calls:
These substitutions are stored in a .js file which is included in extra headers. I was concerned that this method would be disrupted.
The .nsx code reads:
and the new obfuscated code reads:
4) Given these concerns, I was skeptical. However running the program (using js-obfuscator-high) I instantly noticed an increase in speed! And so far I have not encountered any problems with the code. So now I am using the combination of all three methods, and my conclusion is:
I LOVE IT!