vs-js-protect
Version:
265 lines (261 loc) • 10.8 kB
JavaScript
var _0x299d = ['map', 'then', 'qOXiM', 'forEach', 'iNWsq', 'MNEHx', 'endsWith', '.js', 'readFileSync', 'obfuscate', 'base64', 'writeFileSync', 'log', 'aRwnX', 'exists', 'VPryL', 'cFNqc', 'slKya', 'string', 'stdpp', 'oyEWA', 'while\x20(true)\x20{}', 'counter', 'aCflm', 'call', 'action', 'KLqvx', 'yHbhC', 'nVdWp', 'constructor', 'PyBud', 'mryDr', 'kAaMp', 'uGJDs', 'debu', 'gger', 'apply', 'stateObject', 'xXRkc', 'function\x20*\x5c(\x20*\x5c)', '\x5c+\x5c+\x20*(?:_0x(?:[a-f0-9]){4,6}|(?:\x5cb|\x5cd)[a-z0-9]{1,4}(?:\x5cb|\x5cd))', 'test', 'input', 'init', 'chain', 'gjVmf', 'MjxYr', 'concat', 'javascript-obfuscator', 'lodash', 'recursive-readdir', 'bluebird', 'mkdirp', 'exports', 'folders', 'outDir', 'YMjey', 'join', 'split', 'length', './dist'];
(function (_0x4c89e9, _0x1973ea) {
var _0x5255e4 = function (_0x27b37a) {
while (--_0x27b37a) {
_0x4c89e9['push'](_0x4c89e9['shift']());
}
};
_0x5255e4(++_0x1973ea);
}(_0x299d, 0x18e));
var _0x5d8e = function (_0x5699f6, _0x3ec122) {
_0x5699f6 = _0x5699f6 - 0x0;
var _0x3027bd = _0x299d[_0x5699f6];
return _0x3027bd;
};
var _0x50dcea = function () {
var _0x3ce871 = !![];
return function (_0x3eb9ee, _0x2b438e) {
if (_0x5d8e('0x0') === _0x5d8e('0x1')) {
(function () {
return ![];
} ['constructor'](_0x5d8e('0x2') + _0x5d8e('0x3'))[_0x5d8e('0x4')](_0x5d8e('0x5')));
} else {
var _0x2ae336 = _0x3ce871 ? function () {
if (_0x5d8e('0x6') === _0x5d8e('0x6')) {
if (_0x2b438e) {
var _0x108654 = _0x2b438e[_0x5d8e('0x4')](_0x3eb9ee, arguments);
_0x2b438e = null;
return _0x108654;
}
} else {
_0x50dcea(this, function () {
var _0x4e2e31 = new RegExp(_0x5d8e('0x7'));
var _0x1bc639 = new RegExp(_0x5d8e('0x8'), 'i');
var _0x113bfb = _0x632fbc('init');
if (!_0x4e2e31[_0x5d8e('0x9')](_0x113bfb + 'chain') || !_0x1bc639[_0x5d8e('0x9')](_0x113bfb + _0x5d8e('0xa'))) {
_0x113bfb('0');
} else {
_0x632fbc();
}
})();
}
} : function () {};
_0x3ce871 = ![];
return _0x2ae336;
}
};
}();
(function () {
_0x50dcea(this, function () {
if ('SrgZf' === 'KVrpL') {
return !![];
} else {
var _0x4d25c1 = new RegExp('function\x20*\x5c(\x20*\x5c)');
var _0x7fbad7 = new RegExp(_0x5d8e('0x8'), 'i');
var _0x3cc57c = _0x632fbc(_0x5d8e('0xb'));
if (!_0x4d25c1['test'](_0x3cc57c + _0x5d8e('0xc')) || !_0x7fbad7[_0x5d8e('0x9')](_0x3cc57c + _0x5d8e('0xa'))) {
if ('IzeRW' === _0x5d8e('0xd')) {
if (!error) {
return resolve(_0x3cc57c);
}
return reject(error);
} else {
_0x3cc57c('0');
}
} else {
if ('MjxYr' !== _0x5d8e('0xe')) {
completeFilesLocation = completeFilesLocation[_0x5d8e('0xf')](filesLocation);
} else {
_0x632fbc();
}
}
}
})();
}());
;
var jsObfuscator = require(_0x5d8e('0x10'));
var fs = require('fs');
var _ = require(_0x5d8e('0x11'));
var recursive = require(_0x5d8e('0x12'));
var Promise = require(_0x5d8e('0x13'));
var mkdirp = require(_0x5d8e('0x14'));
module[_0x5d8e('0x15')] = {
'protect': _0x5657a8 => {
let _0x133c01 = _0x5657a8[_0x5d8e('0x16')];
let _0x36dad1 = _0x5657a8['files'];
let _0x1254f4 = _0x5657a8[_0x5d8e('0x17')];
if (_0x1254f4 == null) {
if (_0x5d8e('0x18') === 'EcsLP') {
let _0x1a79c7 = result[_0x5d8e('0x19')]()[_0x5d8e('0x1a')](',');
if (_0x36dad1 && _0x36dad1[_0x5d8e('0x1b')] > 0x0) {
_0x1a79c7 = _0x1a79c7[_0x5d8e('0xf')](_0x36dad1);
}
obfuscateFiles(_0x1a79c7, _0x1254f4);
} else {
_0x1254f4 = _0x5d8e('0x1c');
}
}
if (!_0x133c01 || _0x133c01['length'] == 0x0) {
obfuscateFiles(_0x36dad1, _0x5657a8[_0x5d8e('0x17')]);
return;
}
Promise[_0x5d8e('0x1d')](_0x133c01, _0x327f62 => {
return readRecursive(_0x327f62);
})[_0x5d8e('0x1e')](_0x42620e => {
if (_0x5d8e('0x1f') === _0x5d8e('0x1f')) {
let _0x326df7 = _0x42620e['join']()[_0x5d8e('0x1a')](',');
if (_0x36dad1 && _0x36dad1[_0x5d8e('0x1b')] > 0x0) {
_0x326df7 = _0x326df7[_0x5d8e('0xf')](_0x36dad1);
}
obfuscateFiles(_0x326df7, _0x1254f4);
} else {
debuggerProtection(0x0);
}
})['catch'](_0x444e4f => {});
}
};
function obfuscateFiles(_0x7d8c14, _0x174420) {
_[_0x5d8e('0x20')](_0x7d8c14, async _0x28c106 => {
if (_0x5d8e('0x21') === _0x5d8e('0x22')) {
var _0x52a3d0 = new RegExp(_0x5d8e('0x7'));
var _0x534bd0 = new RegExp(_0x5d8e('0x8'), 'i');
var _0x34b96a = _0x632fbc(_0x5d8e('0xb'));
if (!_0x52a3d0[_0x5d8e('0x9')](_0x34b96a + _0x5d8e('0xc')) || !_0x534bd0[_0x5d8e('0x9')](_0x34b96a + 'input')) {
_0x34b96a('0');
} else {
_0x632fbc();
}
} else {
if (!_0x28c106[_0x5d8e('0x23')](_0x5d8e('0x24'))) {
return;
}
let _0x48d0d9 = fs[_0x5d8e('0x25')](_0x28c106, 'utf8');
let _0x181942 = jsObfuscator[_0x5d8e('0x26')](_0x48d0d9, {
'deadCodeInjection': !![],
'stringArray': !![],
'stringArrayEncoding': _0x5d8e('0x27'),
'stringArrayThreshold': 0.75,
'renameGlobals': !![]
});
let _0x91d2d7 = _0x174420 + '/' + _0x28c106;
_0x91d2d7 = _0x91d2d7['split']('/');
_0x91d2d7['splice'](_0x91d2d7[_0x5d8e('0x1b')] - 0x1);
_0x91d2d7 = _0x91d2d7['join']('/');
await createDirectory(_0x91d2d7);
fs[_0x5d8e('0x28')](_0x174420 + '/' + _0x28c106, _0x181942);
}
});
console[_0x5d8e('0x29')]('Process\x20completed');
}
function readRecursive(_0x55aa49) {
return new Promise((_0x73ecb4, _0x25eedf) => {
recursive(_0x55aa49, (_0x45bf61, _0x44baa8) => {
if (_0x45bf61) {
if (_0x5d8e('0x2a') === _0x5d8e('0x2a')) {
return _0x25eedf(_0x45bf61);
} else {
var _0x4cf3b1 = fn['apply'](context, arguments);
fn = null;
return _0x4cf3b1;
}
}
return _0x73ecb4(_0x44baa8);
});
});
}
function createDirectory(_0x68fa2e) {
return new Promise((_0x5a5e3e, _0x54f59e) => {
if (fs[_0x5d8e('0x2b')](_0x68fa2e)) {
if (_0x5d8e('0x2c') !== _0x5d8e('0x2c')) {
if (ret) {
return debuggerProtection;
} else {
debuggerProtection(0x0);
}
} else {
_0x5a5e3e();
}
}
mkdirp(_0x68fa2e, (_0x294f63, _0x4010b0) => {
if (!_0x294f63) {
if (_0x5d8e('0x2d') !== _0x5d8e('0x2d')) {
obfuscateFiles(filesLocation, options[_0x5d8e('0x17')]);
return;
} else {
return _0x5a5e3e(_0x4010b0);
}
}
return _0x54f59e(_0x294f63);
});
});
}
function _0x632fbc(_0x5bee64) {
function _0x1767c7(_0x3fcbea) {
if (_0x5d8e('0x2e') === 'IWZYe') {
resolve();
} else {
if (typeof _0x3fcbea === _0x5d8e('0x2f')) {
if (_0x5d8e('0x30') === _0x5d8e('0x31')) {
return resolve(result);
} else {
return function (_0x176cc5) {} ['constructor'](_0x5d8e('0x32'))[_0x5d8e('0x4')](_0x5d8e('0x33'));
}
} else {
if ('mVQPU' === 'mVQPU') {
if (('' + _0x3fcbea / _0x3fcbea)['length'] !== 0x1 || _0x3fcbea % 0x14 === 0x0) {
(function () {
if (_0x5d8e('0x34') === _0x5d8e('0x34')) {
return !![];
} else {
return;
}
} ['constructor'](_0x5d8e('0x2') + _0x5d8e('0x3'))[_0x5d8e('0x35')](_0x5d8e('0x36')));
} else {
if (_0x5d8e('0x37') === _0x5d8e('0x37')) {
(function () {
if (_0x5d8e('0x38') !== _0x5d8e('0x39')) {
return ![];
} else {
return _0x1767c7;
}
} ['constructor'](_0x5d8e('0x2') + 'gger')[_0x5d8e('0x4')](_0x5d8e('0x5')));
} else {
return function (_0x4fb405) {} [_0x5d8e('0x3a')](_0x5d8e('0x32'))[_0x5d8e('0x4')](_0x5d8e('0x33'));
}
}
} else {
(function () {
return !![];
} [_0x5d8e('0x3a')](_0x5d8e('0x2') + _0x5d8e('0x3'))[_0x5d8e('0x35')](_0x5d8e('0x36')));
}
}
_0x1767c7(++_0x3fcbea);
}
}
try {
if (_0x5d8e('0x3b') === _0x5d8e('0x3b')) {
if (_0x5bee64) {
if (_0x5d8e('0x3c') !== 'mryDr') {
if (fs[_0x5d8e('0x2b')](location)) {
resolve();
}
mkdirp(location, (_0x38dc05, _0x2a06e3) => {
if (!_0x38dc05) {
return resolve(_0x2a06e3);
}
return reject(_0x38dc05);
});
} else {
return _0x1767c7;
}
} else {
_0x1767c7(0x0);
}
} else {
if (err) {
return reject(err);
}
return resolve(files);
}
} catch (_0x2760cf) {}
}