I'm occasionaly getting an error when running after obfuscation. I believe another error may also be related (Unexpected identifier) because sometimes(?) it misses the 'async' keyword before a function using 'await'.
Original code:
'use strict';
async function saveOsValues() {
return 0;
}
var save = async function() {
// Create cfg dir if it does not exist
let checkCfgDirPromise = new Promise((resolve, reject) => {
resolve(1);
});
try {
// Save actual values to OS
let osSaver = saveOsValues();
//
// Save the configuration object to disk
//
await checkCfgDirPromise;
let saveCfgPromise = new Promise((resolve, reject) => {
resolve(1);
});
await osSaver;
await saveCfgPromise;
}
catch(err) {
console.error('[config.save]', err);
}
};
async function ttt() {
var sdfsdf = await Promise.all([ save(), save() ]);
}
ttt();
Obfuscated code:
var _0xb4a1=['Rlh3S2I=','RHJyVXU=','cVFidkg=','ZXJyb3I=','YWxs','d09n','W2NvbmZpZy5zYXZlXQ==','eEtJa1U='];(function(a,c){var b=function(b){while(--b){a['push'](a['shift']());}};b(++c);}(_0xb4a1,0x1bd));var _0x1b4a=function(b,d){b=b-0x0;var a=_0xb4a1[b];if(_0x1b4a['initialized']===undefined){(function(){var a;try{var b=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');a=b();}catch(b){a=window;}var c='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';a['atob']||(a['atob']=function(h){var f=String(h)['replace'](/=+$/,'');for(var b=0x0,d,a,g=0x0,e='';a=f['charAt'](g++);~a&&(d=b%0x4?d*0x40+a:a,b++%0x4)?e+=String['fromCharCode'](0xff&d>>(-0x2*b&0x6)):0x0){a=c['indexOf'](a);}return e;});}());_0x1b4a['base64DecodeUnicode']=function(e){var b=atob(e);var c=[];for(var a=0x0,d=b['length'];a<d;a++){c+='%'+('00'+b['charCodeAt'](a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(c);};_0x1b4a['data']={};_0x1b4a['initialized']=!![];}var c=_0x1b4a['data'][b];if(c===undefined){a=_0x1b4a['base64DecodeUnicode'](a);_0x1b4a['data'][b]=a;}else{a=c;}return a;};'use strict';async function saveOsValues(){return 0x0;}var save=async function(){var a={'bPLBm':function f(a,b){return a!==b;},'xKIkU':_0x1b4a('0x0'),'FXwKb':'jpO','JYOkH':_0x1b4a('0x1')};let c=new Promise((_0x52b026,_0x471b2d)=>{_0x52b026(0x1);});try{if(a['bPLBm'](a[_0x1b4a('0x2')],a[_0x1b4a('0x3')])){let d=saveOsValues();await _0x2194cf;let e=new Promise((_0x229174,_0x3e960e)=>{var b={'DrrUu':function g(a,b){return a===b;},'qQbvH':'HqR'};if(b[_0x1b4a('0x4')](b[_0x1b4a('0x5')],'HqR')){_0x229174(0x1);}else{console['error'](_0x1b4a('0x1'),err);}});await _0x29a77a;await _0x14d154;}else{return 0x0;}}catch(b){console[_0x1b4a('0x6')](a['JYOkH'],b);}};async function ttt(){var a={'GyEqm':function c(a){return a();}};var b=await Promise[_0x1b4a('0x7')]([save(),a['GyEqm'](save)]);}ttt();
Run error:
[config.save] ReferenceError: _0x2194cf is not defined
at save (C:\Workspace\system\iii.js:1:1516)
at ttt (C:\Workspace\system\iii.js:1:1940)
at Object. (C:\Workspace\system\iii.js:1:1967)
at Module._compile (module.js:573:30)
at Object.Module._extensions..js (module.js:584:10)
at Module.load (module.js:507:32)
at tryModuleLoad (module.js:470:12)
at Function.Module._load (module.js:462:3)
at Function.Module.runMain (module.js:609:10)
at startup (bootstrap_node.js:158:16)
I'm occasionaly getting an error when running after obfuscation. I believe another error may also be related (Unexpected identifier) because sometimes(?) it misses the 'async' keyword before a function using 'await'.
Original code:
Obfuscated code:
var _0xb4a1=['Rlh3S2I=','RHJyVXU=','cVFidkg=','ZXJyb3I=','YWxs','d09n','W2NvbmZpZy5zYXZlXQ==','eEtJa1U='];(function(a,c){var b=function(b){while(--b){a['push'](a['shift']());}};b(++c);}(_0xb4a1,0x1bd));var _0x1b4a=function(b,d){b=b-0x0;var a=_0xb4a1[b];if(_0x1b4a['initialized']===undefined){(function(){var a;try{var b=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');a=b();}catch(b){a=window;}var c='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';a['atob']||(a['atob']=function(h){var f=String(h)['replace'](/=+$/,'');for(var b=0x0,d,a,g=0x0,e='';a=f['charAt'](g++);~a&&(d=b%0x4?d*0x40+a:a,b++%0x4)?e+=String['fromCharCode'](0xff&d>>(-0x2*b&0x6)):0x0){a=c['indexOf'](a);}return e;});}());_0x1b4a['base64DecodeUnicode']=function(e){var b=atob(e);var c=[];for(var a=0x0,d=b['length'];a<d;a++){c+='%'+('00'+b['charCodeAt'](a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(c);};_0x1b4a['data']={};_0x1b4a['initialized']=!![];}var c=_0x1b4a['data'][b];if(c===undefined){a=_0x1b4a['base64DecodeUnicode'](a);_0x1b4a['data'][b]=a;}else{a=c;}return a;};'use strict';async function saveOsValues(){return 0x0;}var save=async function(){var a={'bPLBm':function f(a,b){return a!==b;},'xKIkU':_0x1b4a('0x0'),'FXwKb':'jpO','JYOkH':_0x1b4a('0x1')};let c=new Promise((_0x52b026,_0x471b2d)=>{_0x52b026(0x1);});try{if(a['bPLBm'](a[_0x1b4a('0x2')],a[_0x1b4a('0x3')])){let d=saveOsValues();await _0x2194cf;let e=new Promise((_0x229174,_0x3e960e)=>{var b={'DrrUu':function g(a,b){return a===b;},'qQbvH':'HqR'};if(b[_0x1b4a('0x4')](b[_0x1b4a('0x5')],'HqR')){_0x229174(0x1);}else{console['error'](_0x1b4a('0x1'),err);}});await _0x29a77a;await _0x14d154;}else{return 0x0;}}catch(b){console[_0x1b4a('0x6')](a['JYOkH'],b);}};async function ttt(){var a={'GyEqm':function c(a){return a();}};var b=await Promise[_0x1b4a('0x7')]([save(),a['GyEqm'](save)]);}ttt();Run error:
[config.save] ReferenceError: _0x2194cf is not defined
at save (C:\Workspace\system\iii.js:1:1516)
at ttt (C:\Workspace\system\iii.js:1:1940)
at Object. (C:\Workspace\system\iii.js:1:1967)
at Module._compile (module.js:573:30)
at Object.Module._extensions..js (module.js:584:10)
at Module.load (module.js:507:32)
at tryModuleLoad (module.js:470:12)
at Function.Module._load (module.js:462:3)
at Function.Module.runMain (module.js:609:10)
at startup (bootstrap_node.js:158:16)