grunt-javascript-obfuscator
Obfuscates JavaScript files using amazing javascript-obfuscator.
Conceal your logic and hide any data contained in the code. Please read documentation how to protect your code effectively. Basic protection:
Original code:
(function(){
var variable = 'abc';
console.log(variable);
})();
Protected code:
var _0xabf1 = [
'\x61\x62\x63',
'\x6c\x6f\x67'
];
(function() {
var _0xe6fab6 = _0xabf1[0x0];
console[_0xabf1[0x1]](_0xe6fab6);
}());
Special thanks for @sanex3339 for his outstanding javascript-obfuscator library.
Getting Started
This plugin requires Grunt>=0.4.5
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 and javascript-obfuscator with this command:
npm install grunt-javascript-obfuscator javascript-obfuscator --save-dev
...javascript-obfuscator is defined as a peer dependency. In other words you can experiment with every version above
0.7.2
.Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-javascript-obfuscator');
The "javascriptobfuscator" task
Overview
In your project's Gruntfile, add a section namedjavascript_obfuscator
to the data object passed into grunt.initConfig()
.grunt.initConfig({
javascript_obfuscator: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
});
Options
Options are passed directly to javascript-obfuscator. Please visit documentation of the project for a complete list of options.Usage Examples
Default Options
In this example, the default options are used to obfuscate scripts:grunt.initConfig({
javascript_obfuscator: {
options: {
/* Default options */
},
main: {
files: {
'dist/obfuscated.js': ['src/module1.js', 'src/module2.js']
}
}
},
});
Custom Options
In this example, custom options are used to obfuscate scripts.debugProtection
makes it almost impossible to use the console tab of the Developer Tools:grunt.initConfig({
javascript_obfuscator: {
options: {
debugProtection: true,
debugProtectionInterval: true
},
main: {
files: {
'dist/obfuscated.js': ['src/module1.js', 'src/module2.js']
}
}
},
});
Obfuscate and overwrite
In this example, source files are obfuscated and overwritten:grunt.initConfig({
javascript_obfuscator: {
options: {
/* Default options */
},
main: {
src: ['src/module1.js', 'src/module2.js']
}
},
});