diff --git a/package.json b/package.json index b70cf8910..6f18c1391 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "javascript-obfuscator", - "version": "0.5.3", + "version": "0.5.4", "description": "JavaScript obfuscator", "keywords": [ "obfuscator", diff --git a/readme.md b/readme.md index 7ba7d0e7f..f64a678a4 100644 --- a/readme.md +++ b/readme.md @@ -1,17 +1,17 @@ -#JavaScript obfuscator for Node.js +# JavaScript obfuscator for Node.js -JavaScript obfuscator for Node.js and free alternative to [js-obfuscator](https://github.com/caiguanhao/js-obfuscator) (which uses [javascriptobfuscator.com](https://javascriptobfuscator.com/Javascript-Obfuscator.aspx)) without any limits and sending data on server. +JavaScript obfuscator for Node.js is a free alternative of [js-obfuscator](https://github.com/caiguanhao/js-obfuscator) (which uses [javascriptobfuscator.com](https://javascriptobfuscator.com/Javascript-Obfuscator.aspx)) without any limits and sending data to a server. Compatible with ES6. Tested on Angular2 bundle. https://gist.github.com/sanex3339/ffc2876123b52e6d11ce45369fd53acf -###Installation +## Installation -Install the package with NPM and add it to your devDependencies: +Install the package with NPM and add it to your `devDependencies`: `npm install --save-dev javascript-obfuscator` -###Usage: +## Usage ```javascript var JavaScriptObfuscator = require('javascript-obfuscator'); @@ -30,25 +30,25 @@ var obfuscatedCode = JavaScriptObfuscator.obfuscate( console.log(obfuscatedCode); /* -var _0xabf1 = [ - '\x61\x62\x63', - '\x6c\x6f\x67' +var _0x8741 = [ + '\u0061\u0062\u0063', + '\u006c\u006f\u0067' ]; -(function() { - var _0xe6fab6 = _0xabf1[0x0]; - console[_0xabf1[0x1]](_0xe6fab6); +(function () { + var _0x45e59c = _0x8741[0]; + console[_0x8741[1]](_0x45e59c); }()); */ ``` -## obfuscate(sourceCode, options) +## `obfuscate(sourceCode, options)` -###sourceCode +#### `sourceCode` Type: `string` Default: `null` -Any valid SourceCode +Any valid SourceCode. -###options +#### `options` Type: `Object` Default: `null` Options for JavaScript obfuscator: @@ -60,73 +60,73 @@ Options for JavaScript obfuscator: } ``` -###Available options -####compact +### Available options +#### `compact` Type: `boolean` Default: `true` Compact code output into one line. -####debugProtection +#### `debugProtection` Type: `boolean` Default: `false` -#####This option can cause browser freeze if Developer Tools are enabled! Use it at your own risk. +##### :warning: This option can cause browser freeze while Developer Tools is enabled! Use at own risk. -Force enable debug mode in some browsers (mainly based on WebKit) on page load, if Developer Tools panel is enabled. -With this option enabled, using of Debug panel is impossible. +Force enable debug mode in some browsers (mainly based on WebKit) on page load if Developer Tools panel is enabled. +With this options using of Debug panel is impossible. -WebKit based browsers: blocking site window, but you still can navigate through Developers Tools panel. -Firefox: *not* blocking site window, but you still can't use Debug panel. +WebKit-based browsers: blocks the site window, but you still can navigate through Developer Tools panel. +Firefox: does *not* block the site window, but you still can't use Debug panel. -####debugProtectionInterval +#### `debugProtectionInterval` Type: `boolean` Default: `false` -#####This option can cause browser freeze even if Developer Tools are disabled! Use it at your own risk. +##### :warning: This option can cause browser freeze even while Developer Tools is disabled! Use at own risk. Works if `debugProtection` is enabled. -Force enable debug mode in some browsers (mainly based on WebKit) when Developers Tools panel was enabled, even after page was loaded. +Force enable debug mode in some browsers (mainly based on WebKit) when Developer Tools panel was enabled, even after page was loaded. -####disableConsoleOutput +#### `disableConsoleOutput` Type: `boolean` Default: `true` Disable `console.log`, `console.info`, `console.error` and `console.warn` messages output into browser console. -####encodeUnicodeArray +#### `encodeUnicodeLiterals` Type: `boolean` Default: `false` -#####`unicodeArray` option must be enabled +##### :warning: `unicodeArray` option must be enabled This option can slightly slowdown your code speed. -All strings in unicode array becomes encoded in Base64. +All literals in unicode array becomes encoded in Base64. To decode strings, special function will be inserted on page under `unicodeArray` node. -####reservedNames +#### `reservedNames` Type: `string[]` Default: `[]` Disable obfuscation of given variable names, function names and names of function parameters. -####rotateUnicodeArray +#### `rotateUnicodeArray` Type: `boolean` Default: `true` -#####`unicodeArray` option must be enabled +##### :warning: `unicodeArray` option must be enabled This option will rotate all values inside `unicodeArray` on a random value during obfuscation of code, and insert inside source code helper function which will rotate array values back to their original indexes. -This option affects only a visual code organisation, because we can easily get original array during debug process. +Keep in mind that this option affects only how the code is visually organised, since the original arrays can be easily accessed during the debug process. -Usage is not recommended for a small source code, because helper function will attract attention. +It is also not recommended to enable `rotateUnicodeArray` for small source code, because a helper function might attract attention. -####unicodeArray +#### `unicodeArray` Type: `boolean` Default: `true` Put all literal strings into array and replace every literal string by array call. -####wrapUnicodeArrayCalls +#### `wrapUnicodeArrayCalls` Type: `boolean` Default: `true` -#####`unicodeArray` option must be enabled +##### :warning: `unicodeArray` option must be enabled Instead using direct calls to `unicodeArray` items `var t = _0x43a123[0x0]`, when index `0x0` can be easily reverted to `0` with few js beautifiers, this option will wrap all calls to special function instead.