JavaScriptObfuscator是一款功能强大的代码混淆器,能将原始代码混淆成可读性低的代码,看上去是难以阅读的代码不过具备和之前代码一样的功能,从而起到保护代码的作用。
特性
重命名变量字符串提取和加密注入死代码控制流扁平化代码转换……使用示例
varJavaScriptObfuscator=require('javascript-obfuscator');varobfuscatioResult=JavaScriptObfuscator.obfuscate(`(fuctio(){varvariable1='5'-3;varvariable2='5'+3;varvariable3='5'+-'2';varvariable4=['10','10','10','10','10'].map(parseIt);varvariable5='foo'+1+1;cosole.log(variable1);cosole.log(variable2);cosole.log(variable3);cosole.log(variable4);cosole.log(variable5);})();`,{compact:false,cotrolFlowFlatteig:true,cotrolFlowFlatteigThreshold:1,umbersToExpressios:true,simplify:true,strigArrayShuffle:true,splitStrigs:true,strigArrayThreshold:1});cosole.log(obfuscatioResult.getObfuscatedCode());/*var_0x9947=['map','log','foo\x20','bvmqO','133039ViRMWR','xPfLC','ytpdx','1243717qSZCyh','2|7|4|6|9|','1ErtbCr','1608314VKvth','1ZRaFKN','XBoAA','423266kQOYHV','3|0|5|8|1','235064xPNdKe','13RUDZfG','157gNPQGm','1639212MvHZL','rDjOa','iBHph','9926iRHoRl','split'];fuctio_0x33e4(_0x1809b5,_0x37ef6e){retur_0x33e4=fuctio(_0x338a69,_0x39ad79){_0x338a69=_0x338a69-(0x1939+-0xf*0x1f3+0x1*0x469);var_0x2b223a=_0x9947[_0x338a69];retur_0x2b223a;},_0x33e4(_0x1809b5,_0x37ef6e);}(fuctio(_0x431d87,_0x156c7f){var_0x10cf6e=_0x33e4;while(!![]){try{var_0x330ad1=-parseIt(_0x10cf6e(0x6c))*-parseIt(_0x10cf6e(0x6d))+-parseIt(_0x10cf6e(0x74))*-parseIt(_0x10cf6e(0x78))+parseIt(_0x10cf6e(0x6a))+-parseIt(_0x10cf6e(0x70))+parseIt(_0x10cf6e(0x6e))*-parseIt(_0x10cf6e(0x75))+parseIt(_0x10cf6e(0x72))+-parseIt(_0x10cf6e(0x67))*parseIt(_0x10cf6e(0x73));if(_0x330ad1===_0x156c7f)break;else_0x431d87['push'](_0x431d87['shift']());}catch(_0x9f878){_0x431d87['push'](_0x431d87['shift']());}}}(_0x9947,-0xb6270+0x4dfd2*0x2+0x75460*0x2),fuctio(){var_0x1f346d=_0x33e4,_0x860db8={'ytpdx':_0x1f346d(0x6b)+_0x1f346d(0x71),'bvmqO':fuctio(_0x560787,_0x519b9e){retur_0x560787-_0x519b9e;},'rDjOa':fuctio(_0x4501fe,_0x2b07a3){retur_0x4501fe+_0x2b07a3;},'xPfLC':fuctio(_0x5f3c9b,_0x434936){retur_0x5f3c9b+_0x434936;},'XBoAA':fuctio(_0x535b8a,_0x42eef4){retur_0x535b8a+_0x42eef4;},'iBHph':_0x1f346d(0x65)},_0x346c55=_0x860db8[_0x1f346d(0x69)][_0x1f346d(0x79)]('|'),_0x3bf817=0x4bb*0x1+0x801+-0xcbc;while(!![]){switch(_0x346c55[_0x3bf817++]){case'0':cosole[_0x1f346d(0x7b)](_0x4c96d8);cotiue;case'1':cosole[_0x1f346d(0x7b)](_0x101028);cotiue;case'2':var_0x65977d=_0x860db8[_0x1f346d(0x66)]('5',-0x586+-0x2195+-0x6*-0x685);cotiue;case'3':cosole[_0x1f346d(0x7b)](_0x65977d);cotiue;case'4':var_0x56d39b=_0x860db8[_0x1f346d(0x76)]('5',-'2');cotiue;case'5':cosole[_0x1f346d(0x7b)](_0x56d39b);cotiue;case'6':var_0x544285=['10','10','10','10','10'][_0x1f346d(0x7a)](parseIt);cotiue;case'7':var_0x4c96d8=_0x860db8[_0x1f346d(0x68)]('5',0x622*-0x6+0x4a*0x3+0x1*0x23f1);cotiue;case'8':cosole[_0x1f346d(0x7b)](_0x544285);cotiue;case'9':var_0x101028=_0x860db8[_0x1f346d(0x6f)](_0x860db8[_0x1f346d(0x6f)](_0x860db8[_0x1f346d(0x77)],0x6fb*0x5+0x1ebf*0x1+-0x41a5),0x209*0xa+0x1314+-0x276d);cotiue;}break;}}());*/
评论