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.
- 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
- 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:
- 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!