js-obfuscator
Obfuscate JavaScript files via javascriptobfuscator.com.
IMPORTANT: It is possible that your code can be viewed and/or stored by javascriptobfuscator.com. Please DO NOT include any sensitive data. If you care about your code, split and uglify them before obfuscating.
You can install it globally as a command:
npm install -g js-obfuscator
echo "var fs = require('fs')" | jsobfuscate -o keepIndentations=false
var _0x40c7=["\x66\x73"];var fs=require(_0x40c7[0]);
Or install it as a dependency:
npm install js-obfuscator --save
var jsObfuscator = require('js-obfuscator');
jsObfuscator ( <string> input [, <object> options ] )
Returns: a Q promise.
Or you can use it with Grunt ~0.4.0
:
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install js-obfuscator --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt;
Options
keepLinefeeds
Type: Boolean
Default: false
keepIndentations
Type: Boolean
Default: false
encodeStrings
Type: Boolean
Default: true
encodeNumbers
Type: Boolean
Default: true
moveStrings
Type: Boolean
Default: true
replaceNames
Type: Boolean
Default: true
variableExclusions
Type: Array
Default: [ '^_get_', '^_set_', '^_mtd_' ]
concurrency (for Grunt plugin only)
Type: Number
Default: 2
Range: 1 - 99
Command
$ jsobfuscate -h
Usage: jsobfuscate [OPTIONS] [FILES]
Obfuscate JavaScript files via javascriptobfuscator.com.
Read from STDIN if no files specified.
Default Options:
-o keepLinefeeds=false
-o keepIndentations=false
-o encodeStrings=true
-o encodeNumbers=true
-o moveStrings=true
-o replaceNames=true
-o variableExclusions="['^_get_', '^_set_', '^_mtd_']"
Examples
Grunt
grunt;
Call
var jsObfuscator = ; var script = 'Array.prototype.diff = function(a) {' +' return this.filter(function(i) {return a.indexOf(i) === -1;});' +'};'; var options = keepLinefeeds: true keepIndentations: true encodeStrings: true encodeNumbers: true moveStrings: true replaceNames: true variableExclusions: '^_get_' '^_set_' '^_mtd_' ; ; /*var _0xa3c9=["\x64\x69\x66\x66","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x66\x69\x6C\x74\x65\x72"]Array[_0xa3c9[1]][_0xa3c9[0]]=function (_0x4068x1){ return this[_0xa3c9[3]](function (_0x4068x2) { return _0x4068x1[_0xa3c9[2]](_0x4068x2)===-1; } );};*/
Developer
- caiguanhao <caiguanhao@gmail.com>