本来这个系列到五就应该结束了的,但最近又上了这个网站看了看,似乎是更新了。

查了查记录,本作的第一篇 日期是2020年4月10日,对应的版本大概是0.27,而今天这个版本已经到了3.0.看来是时候来一波更新了。

1.调试保护的变化

这个似乎是没有什么变化,但是多了一个self defending的选项

selfDefending

Type: boolean Default: false

⚠️ Don't change obfuscated code in any way after obfuscation with this option, because any change like uglifying of code can trigger self defending and code wont work anymore!

使用此选项进行混淆后,请勿以任何方式更改混淆代码,因为任何像代码丑化之类的更改都会触发自我防御,代码将不再起作用!

⚠️ This option forcibly sets compact value to true

This option makes the output code resilient against formatting and variable renaming. If one tries to use a JavaScript beautifier on the obfuscated code, the code won't work anymore, making it harder to understand and modify it.

此选项使输出代码可以对抗格式化和变量重命名。如果试图在混淆后的代码上使用 JavaScript 美化器,该代码将不再起作用,导致的后果是代码更难以理解和修改。

只勾选这个选项,生成的代码如下://格式化之后

function hi() {var _0x21d27c = function () {var _0xc783b = !![];return function (_0x293219, _0x45080d) {var _0x58b375 = _0xc783b ? function () {if (_0x45080d) {var _0x5bb720 = _0x45080d['apply'](_0x293219, arguments);_0x45080d = null;return _0x5bb720;}} : function () {};_0xc783b = ![];return _0x58b375;};}();var _0x37c3a5 = _0x21d27c(this, function () {return _0x37c3a5['toString']()['search']('(((.+)+)+)+$')['toString']()['constructor'](_0x37c3a5)['search']('(((.+)+)+)+$');});_0x37c3a5();console['log']('Hello World!');
}
hi();

就是多了_0x37c3a5 这个函数。

2.字符串数组

这个可能是变化最明显的部分。之前都是代码开头一个大数组,然后是解密函数,现在数据也放在函数里了。

之前的代码:选项[String Array]

var _0x21af = ['write','<h1>xxxx</h1>','test1111','Hello\x20World!','22test11','test33333','111test','Hello\x2022test11','log'
];
var _0x13c7 = function (_0x21af39, _0x13c7e6) {_0x21af39 = _0x21af39 - 0x0;var _0x1d5715 = _0x21af[_0x21af39];return _0x1d5715;
};
function hi() {console[_0x13c7('0x8')](_0x13c7('0x3'));document[_0x13c7('0x0')](_0x13c7('0x3'));console[_0x13c7('0x8')](_0x13c7('0x2'));document[_0x13c7('0x0')](_0x13c7('0x1'));console[_0x13c7('0x8')](_0x13c7('0x5'));console[_0x13c7('0x8')](_0x13c7('0x6'));console[_0x13c7('0x8')](_0x13c7('0x4'));document[_0x13c7('0x0')](_0x13c7('0x7'));
}

现在的代码:

function hi() {function _0x3012df(_0x29d760, _0x1ae937, _0x27dceb, _0x2b0774, _0x5f2c97) {return _0x4699(_0x5f2c97 - 186, _0x2b0774);}function _0x5d39fa(_0x21baad, _0x2f7997, _0x5d179d, _0x6d3e80, _0x37395d) {return _0x4699(_0x37395d - -468, _0x5d179d);}console[_0x3850bb(513, 512, 510, 514, 515)](_0x3012df(423, 424, 421, 427, 425));document[_0x3850bb(517, 514, 516, 510, 511)](_0x3d22a1(782, 783, 786, 790, 788));function _0xf94929(_0x2104b9, _0x2f17ac, _0x58a51f, _0x3518e7, _0x400997) {return _0x4699(_0x3518e7 - 851, _0x2104b9);}function _0x3850bb(_0x33a8e5, _0x3b317d, _0x4f753d, _0x7f6d84, _0x407ffd) {return _0x4699(_0x3b317d - 274, _0x407ffd);}console[_0x3012df(420, 421, 420, 425, 424)](_0xf94929(1089, 1089, 1090, 1092, 1088));document[_0x3d22a1(791, 785, 787, 789, 783)](_0x3850bb(513, 516, 518, 516, 520));console[_0x3850bb(516, 512, 516, 509, 508)](_0xf94929(1097, 1097, 1095, 1094, 1098));function _0x3d22a1(_0x3e92fb, _0x2cee14, _0x3c8229, _0x4c71d2, _0x58c634) {return _0x4699(_0x3c8229 - 547, _0x2cee14);}console[_0x3d22a1(785, 785, 785, 782, 787)](_0x3850bb(515, 518, 523, 514, 517));console[_0x3d22a1(783, 790, 785, 790, 786)](_0x5d39fa(-226, -228, -228, -220, -223));document[_0x3012df(426, 429, 425, 428, 426)](_0x3850bb(518, 520, 515, 521, 523));
}
function _0x4699(_0x36d574, _0x2053ae) {var _0x46993a = _0x2053();_0x4699 = function (_0x2d398d, _0x59feaf) {_0x2d398d = _0x2d398d - 238;var _0x1e37e4 = _0x46993a[_0x2d398d];return _0x1e37e4;};return _0x4699(_0x36d574, _0x2053ae);
}
hi();
function _0x2053() {var _0x4aea90 = ['log','Hello World!','write','test1111','<h1>xxxx</h1>','test33333','111test','22test11','Hello 22test11'];_0x2053 = function () {return _0x4aea90;};return _0x2053();
}

现在中转函数更多了,直接都是统一的入口,现在入口分散之后利用ast就没有那么容易还原了。

这里是因为开了stringArrayWrappersType 这个选项导致的。这个选项有两种可用值:

  • 'variable': 在每个作用域的顶部附加变量包装器。快速的性能。
  • 'function':在每个范围内的随机位置附加函数包装器。性能比 with 慢,variable但提供更严格的混淆。
  • ddd

variable 这个:

比如原来的解密入口函数  decode_xx,现在多了一个 var aa=decode_xx;然后调用aa(arg1,arg2)解密;

fuction 则是多了一个辣鸡函数比如:

fuctiong xxxxx(arg1,arg2,....)

{

....其他代码

decode_xx();

....其他代码

}

function包裹器这个对ast还原影响更大,不过也不是没办法解决,只要能定位decode_xx函数,然后再查找他的引用的函数,这样应该能解决一部分。

加上【string array rotate】 选项

function _0x2afd(_0x43fe1f, _0x3d4b5f) {var _0x5c9c3e = _0x5c9c();_0x2afd = function (_0x2afd22, _0x5c7ab8) {_0x2afd22 = _0x2afd22 - 0x7c;var _0xcd0d30 = _0x5c9c3e[_0x2afd22];return _0xcd0d30;};return _0x2afd(_0x43fe1f, _0x3d4b5f);
}
(function (_0xf1d56, _0x4dd041) {var _0x4dec66 = _0xf1d56();function _0x200e7d(_0x817ea2, _0x397998, _0x19ef42, _0x51e156, _0x55c627) {return _0x2afd(_0x51e156 - 0xdc, _0x397998);}function _0x3da384(_0x24dbe8, _0x5cc65a, _0x398d4, _0x435d45, _0x15234f) {return _0x2afd(_0x24dbe8 - 0x165, _0x15234f);}function _0x174553(_0x4b781a, _0x2af89a, _0x42fa4d, _0x2fac9d, _0x665110) {return _0x2afd(_0x2af89a - 0xb, _0x4b781a);}function _0x160e5d(_0x35687e, _0x37205b, _0x525c0b, _0x4df011, _0x346267) {return _0x2afd(_0x346267 - 0x114, _0x525c0b);}function _0x375c62(_0x4aaee7, _0x1bd426, _0x321d1e, _0x29b36d, _0x21531e) {return _0x2afd(_0x29b36d - -0x133, _0x1bd426);}while (!![]) {try {var _0x2edf13 = -parseInt(_0x375c62(-0xb2, -0xb2, -0xb8, -0xb7, -0xbe)) / 0x1 * (parseInt(_0x160e5d(0x196, 0x18c, 0x190, 0x190, 0x191)) / 0x2) + -parseInt(_0x200e7d(0x15d, 0x155, 0x15a, 0x15a, 0x15e)) / 0x3 + parseInt(_0x375c62(-0xbc, -0xbd, -0xbd, -0xb4, -0xb0)) / 0x4 * (-parseInt(_0x200e7d(0x156, 0x15e, 0x15a, 0x15c, 0x164)) / 0x5) + -parseInt(_0x3da384(0x1e6, 0x1e5, 0x1df, 0x1dd, 0x1e3)) / 0x6 + parseInt(_0x160e5d(0x19f, 0x192, 0x191, 0x1a0, 0x196)) / 0x7 * (-parseInt(_0x375c62(-0xb8, -0xb6, -0xad, -0xb0, -0xa7)) / 0x8) + -parseInt(_0x174553(0x8d, 0x8f, 0x95, 0x8f, 0x99)) / 0x9 + parseInt(_0x200e7d(0x169, 0x161, 0x163, 0x161, 0x15d)) / 0xa;if (_0x2edf13 === _0x4dd041) {break;} else {_0x4dec66['push'](_0x4dec66['shift']());}} catch (_0x57711d) {_0x4dec66['push'](_0x4dec66['shift']());}}
}(_0x5c9c, 0xf288d));
function _0x5c9c() {var _0x2dcb91 = ['1155126aqPSSH','32Xvhjod','1203894ZsawTP','50453230WRnTPO','log','Hello\x20World!','write','test1111','<h1>xxxx</h1>','test33333','111test','22test11','Hello\x2022test11','804044KJXDta','2SMYIdR','3847116PbFcPY','856276DnIhKZ','20pNDMdD','1892232XoAQUt'];_0x5c9c = function () {return _0x2dcb91;};return _0x5c9c();
}
function hi() {console[_0x1867f5(-0x345, -0x33c, -0x33f, -0x344, -0x33b)](_0x1867f5(-0x340, -0x346, -0x33e, -0x33e, -0x347));document[_0x159d5b(0x247, 0x24d, 0x245, 0x245, 0x24a)](_0x2271cb(-0x5f, -0x62, -0x5d, -0x5f, -0x6b));console[_0x206b03(0x466, 0x465, 0x46d, 0x464, 0x46c)](_0x1867f5(-0x346, -0x343, -0x33c, -0x344, -0x334));function _0x1867f5(_0x5abbef, _0x3e131f, _0x13c3b3, _0x205ba9, _0x343927) {return _0x2afd(_0x13c3b3 - -0x3c5, _0x5abbef);}document[_0x2271cb(-0x5a, -0x61, -0x5e, -0x6a, -0x5c)](_0x1867f5(-0x344, -0x331, -0x33b, -0x338, -0x334));function _0x159d5b(_0x2aa0, _0x1bc164, _0x108db7, _0x357ce3, _0x159edd) {return _0x2afd(_0x159edd - 0x1c2, _0x357ce3);}console[_0x2271cb(-0x64, -0x63, -0x66, -0x5a, -0x60)](_0x206b03(0x46b, 0x46d, 0x46c, 0x46e, 0x465));function _0x2271cb(_0x74396f, _0x46894a, _0x2e64d8, _0x2ff268, _0x12ffee) {return _0x2afd(_0x46894a - -0xe9, _0x12ffee);}console[_0x1867f5(-0x33a, -0x339, -0x33f, -0x33a, -0x344)](_0x2271cb(-0x65, -0x5d, -0x65, -0x5d, -0x5b));function _0x206b03(_0x2b9511, _0x5877e3, _0x4a2d19, _0x3963ac, _0x5225c2) {return _0x2afd(_0x2b9511 - 0x3e0, _0x5225c2);}function _0x4f7d99(_0x15c33b, _0x16cb52, _0x47f4fb, _0x50d271, _0x52ff99) {return _0x2afd(_0x16cb52 - 0x21c, _0x50d271);}console[_0x206b03(0x466, 0x45e, 0x46d, 0x469, 0x45d)](_0x4f7d99(0x2a4, 0x2a9, 0x2a8, 0x2a2, 0x2a5));document[_0x2271cb(-0x5a, -0x61, -0x69, -0x5a, -0x64)](_0x206b03(0x46e, 0x471, 0x46c, 0x475, 0x46b));
}
hi();

多了while(true)的一段代码。

再加上【string array shuffle】选项

function _0xae1c(_0x5ec1d3, _0x469297) {var _0xbff45c = _0xbff4();_0xae1c = function (_0xae1c5c, _0x321314) {_0xae1c5c = _0xae1c5c - 0x1ab;var _0x30234b = _0xbff45c[_0xae1c5c];return _0x30234b;};return _0xae1c(_0x5ec1d3, _0x469297);
}
(function (_0xdbb2a1, _0x31c0a0) {function _0x1cfc6a(_0x4b3d85, _0x33874c, _0x35cea5, _0x308abb, _0x4fd323) {return _0xae1c(_0x33874c - 0x337, _0x308abb);}var _0x416e25 = _0xdbb2a1();function _0x5bd311(_0x4d954b, _0x2e219a, _0xec838b, _0x53f8e4, _0xe46e91) {return _0xae1c(_0x4d954b - -0x35a, _0x53f8e4);}function _0x42a42d(_0x398aee, _0x476e9d, _0x1e0739, _0x70febd, _0x4e888d) {return _0xae1c(_0x4e888d - 0x3aa, _0x476e9d);}function _0x2901a9(_0xa81f6b, _0x1367e0, _0x2eb85f, _0x3bf4e1, _0x5754e7) {return _0xae1c(_0x1367e0 - -0x13d, _0x2eb85f);}function _0x286e29(_0x14495d, _0x5ecc9d, _0x3645b6, _0x32499a, _0x59977f) {return _0xae1c(_0x3645b6 - 0x38e, _0x5ecc9d);}while (!![]) {try {var _0x41f965 = -parseInt(_0x42a42d(0x55a, 0x56b, 0x55f, 0x560, 0x560)) / 0x1 * (parseInt(_0x1cfc6a(0x4ef, 0x4ef, 0x4ed, 0x4f0, 0x4f0)) / 0x2) + parseInt(_0x1cfc6a(0x4db, 0x4e5, 0x4e3, 0x4dc, 0x4dd)) / 0x3 * (parseInt(_0x286e29(0x53b, 0x533, 0x53a, 0x544, 0x535)) / 0x4) + -parseInt(_0x286e29(0x548, 0x53d, 0x547, 0x541, 0x550)) / 0x5 * (parseInt(_0x5bd311(-0x1ab, -0x1a3, -0x1a8, -0x1b3, -0x1b3)) / 0x6) + parseInt(_0x286e29(0x547, 0x54c, 0x541, 0x538, 0x547)) / 0x7 * (parseInt(_0x286e29(0x53e, 0x544, 0x545, 0x549, 0x54d)) / 0x8) + -parseInt(_0x2901a9(0x66, 0x6e, 0x79, 0x78, 0x64)) / 0x9 * (-parseInt(_0x5bd311(-0x19e, -0x1a7, -0x19c, -0x1a8, -0x1a2)) / 0xa) + parseInt(_0x2901a9(0x7b, 0x80, 0x87, 0x82, 0x87)) / 0xb * (-parseInt(_0x2901a9(0x75, 0x78, 0x7f, 0x7a, 0x6f)) / 0xc) + parseInt(_0x42a42d(0x54d, 0x54d, 0x562, 0x556, 0x557)) / 0xd;if (_0x41f965 === _0x31c0a0) {break;} else {_0x416e25['push'](_0x416e25['shift']());}} catch (_0x5ac586) {_0x416e25['push'](_0x416e25['shift']());}}
}(_0xbff4, 0xc0aeb));
function hi() {function _0x3f57dd(_0x1e9608, _0x239a25, _0x24e69f, _0x281a60, _0x47fd6e) {return _0xae1c(_0x239a25 - 0x3b5, _0x47fd6e);}function _0x217c2c(_0x36dc66, _0x580eb5, _0x352eff, _0xde9446, _0x50b26a) {return _0xae1c(_0x50b26a - -0x358, _0x580eb5);}console[_0x217c2c(-0x1a4, -0x1a5, -0x19b, -0x196, -0x19e)](_0x15d709(0x50c, 0x514, 0x50a, 0x505, 0x506));function _0x2d457c(_0x2d931f, _0x1eb371, _0x52c069, _0x419c56, _0xa001f9) {return _0xae1c(_0x1eb371 - -0xf2, _0xa001f9);}function _0x15d709(_0x53c6f6, _0x152aa6, _0x2608d9, _0x321517, _0x4bba24) {return _0xae1c(_0x2608d9 - 0x34b, _0x4bba24);}document[_0x15d709(0x504, 0x507, 0x50b, 0x515, 0x50b)](_0x15fe92(0x4a8, 0x4a8, 0x4b0, 0x4ab, 0x4a9));console[_0x15d709(0x505, 0x50b, 0x505, 0x4fc, 0x508)](_0x15fe92(0x4af, 0x4ad, 0x4ac, 0x4b2, 0x4b2));document[_0x15fe92(0x4a6, 0x4ac, 0x4b1, 0x4b5, 0x4b0)](_0x15fe92(0x49c, 0x49b, 0x4a1, 0x4ab, 0x49e));console[_0x3f57dd(0x565, 0x56f, 0x578, 0x57a, 0x573)](_0x3f57dd(0x567, 0x567, 0x571, 0x568, 0x561));console[_0x15d709(0x4fb, 0x50f, 0x505, 0x510, 0x503)](_0x15fe92(0x4a6, 0x49a, 0x4a5, 0x4a3, 0x4a2));console[_0x217c2c(-0x19f, -0x1a9, -0x1a3, -0x199, -0x19e)](_0x217c2c(-0x19c, -0x18f, -0x194, -0x199, -0x19a));function _0x15fe92(_0x16a9ef, _0x58fd01, _0x16bd15, _0x145338, _0x3e4995) {return _0xae1c(_0x16bd15 - 0x2f1, _0x58fd01);}document[_0x3f57dd(0x570, 0x575, 0x579, 0x56a, 0x57c)](_0x217c2c(-0x19c, -0x19c, -0x19d, -0x1aa, -0x1a7));
}
function _0xbff4() {var _0x1c9a9c = ['10PquCUw','log','test1111','17890xMoDuw','154qQHOfh','22test11','Hello\x20World!','write','5418mFOKoR','856jOmIFr','19061120gupDmS','21957PsIFJr','3840792XdeSgB','<h1>xxxx</h1>','Hello\x2022test11','test33333','573167qPdXyw','111test','941244VnhVsA','40dnnwyg','40tUcJNt','67564ruINtU'];_0xbff4 = function () {return _0x1c9a9c;};return _0xbff4();
}
hi();

所有选项全上:

function _0x163e(_0x1268b3, _0x136c28) {var _0x2318a1 = _0x2318();_0x163e = function (_0x4adb1d, _0x52a6ac) {_0x4adb1d = _0x4adb1d - 0xd1;var _0x283dc2 = _0x2318a1[_0x4adb1d];if (_0x163e['PkFTjY'] === undefined) {var _0x412980 = function (_0x23154a) {var _0x549620 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x48b2bd = '';var _0x573c75 = '';for (var _0x550638 = 0x0, _0x3ac524, _0x2318d3, _0x85ea18 = 0x0; _0x2318d3 = _0x23154a['charAt'](_0x85ea18++); ~_0x2318d3 && (_0x3ac524 = _0x550638 % 0x4 ? _0x3ac524 * 0x40 + _0x2318d3 : _0x2318d3, _0x550638++ % 0x4) ? _0x48b2bd += String['fromCharCode'](0xff & _0x3ac524 >> (-0x2 * _0x550638 & 0x6)) : 0x0) {_0x2318d3 = _0x549620['indexOf'](_0x2318d3);}for (var _0x55f51c = 0x0, _0x1e811f = _0x48b2bd['length']; _0x55f51c < _0x1e811f; _0x55f51c++) {_0x573c75 += '%' + ('00' + _0x48b2bd['charCodeAt'](_0x55f51c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x573c75);};var _0x163edf = function (_0x27b585, _0x54daff) {var _0x374401 = [], _0x472add = 0x0, _0x58e30e, _0x215a1e = '';_0x27b585 = _0x412980(_0x27b585);var _0x44dffb;for (_0x44dffb = 0x0; _0x44dffb < 0x100; _0x44dffb++) {_0x374401[_0x44dffb] = _0x44dffb;}for (_0x44dffb = 0x0; _0x44dffb < 0x100; _0x44dffb++) {_0x472add = (_0x472add + _0x374401[_0x44dffb] + _0x54daff['charCodeAt'](_0x44dffb % _0x54daff['length'])) % 0x100;_0x58e30e = _0x374401[_0x44dffb];_0x374401[_0x44dffb] = _0x374401[_0x472add];_0x374401[_0x472add] = _0x58e30e;}_0x44dffb = 0x0;_0x472add = 0x0;for (var _0x27e233 = 0x0; _0x27e233 < _0x27b585['length']; _0x27e233++) {_0x44dffb = (_0x44dffb + 0x1) % 0x100;_0x472add = (_0x472add + _0x374401[_0x44dffb]) % 0x100;_0x58e30e = _0x374401[_0x44dffb];_0x374401[_0x44dffb] = _0x374401[_0x472add];_0x374401[_0x472add] = _0x58e30e;_0x215a1e += String['fromCharCode'](_0x27b585['charCodeAt'](_0x27e233) ^ _0x374401[(_0x374401[_0x44dffb] + _0x374401[_0x472add]) % 0x100]);}return _0x215a1e;};_0x163e['WUXtea'] = _0x163edf;_0x1268b3 = arguments;_0x163e['PkFTjY'] = !![];}var _0x1e597b = _0x2318a1[0x0];var _0x4b28dc = _0x4adb1d + _0x1e597b;var _0x13f69f = _0x1268b3[_0x4b28dc];if (!_0x13f69f) {if (_0x163e['eFjacw'] === undefined) {_0x163e['eFjacw'] = !![];}_0x283dc2 = _0x163e['WUXtea'](_0x283dc2, _0x52a6ac);_0x1268b3[_0x4b28dc] = _0x283dc2;} else {_0x283dc2 = _0x13f69f;}return _0x283dc2;};return _0x163e(_0x1268b3, _0x136c28);
}
function _0x85ea(_0x1268b3, _0x136c28) {var _0x2318a1 = _0x2318();_0x85ea = function (_0x4adb1d, _0x52a6ac) {_0x4adb1d = _0x4adb1d - 0xd1;var _0x283dc2 = _0x2318a1[_0x4adb1d];if (_0x85ea['DZiTcT'] === undefined) {var _0x412980 = function (_0x163edf) {var _0x23154a = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x549620 = '';var _0x48b2bd = '';for (var _0x573c75 = 0x0, _0x550638, _0x3ac524, _0x2318d3 = 0x0; _0x3ac524 = _0x163edf['charAt'](_0x2318d3++); ~_0x3ac524 && (_0x550638 = _0x573c75 % 0x4 ? _0x550638 * 0x40 + _0x3ac524 : _0x3ac524, _0x573c75++ % 0x4) ? _0x549620 += String['fromCharCode'](0xff & _0x550638 >> (-0x2 * _0x573c75 & 0x6)) : 0x0) {_0x3ac524 = _0x23154a['indexOf'](_0x3ac524);}for (var _0x85ea18 = 0x0, _0x55f51c = _0x549620['length']; _0x85ea18 < _0x55f51c; _0x85ea18++) {_0x48b2bd += '%' + ('00' + _0x549620['charCodeAt'](_0x85ea18)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48b2bd);};_0x85ea['vfPNYt'] = _0x412980;_0x1268b3 = arguments;_0x85ea['DZiTcT'] = !![];}var _0x1e597b = _0x2318a1[0x0];var _0x4b28dc = _0x4adb1d + _0x1e597b;var _0x13f69f = _0x1268b3[_0x4b28dc];if (!_0x13f69f) {_0x283dc2 = _0x85ea['vfPNYt'](_0x283dc2);_0x1268b3[_0x4b28dc] = _0x283dc2;} else {_0x283dc2 = _0x13f69f;}return _0x283dc2;};return _0x85ea(_0x1268b3, _0x136c28);
}
function _0x4adb(_0x1268b3, _0x136c28) {var _0x2318a1 = _0x2318();_0x4adb = function (_0x4adb1d, _0x52a6ac) {_0x4adb1d = _0x4adb1d - 0xd1;var _0x283dc2 = _0x2318a1[_0x4adb1d];return _0x283dc2;};return _0x4adb(_0x1268b3, _0x136c28);
}
(function (_0x4a961d, _0x37361c) {function _0x37110a(_0x15842b, _0x5ed436, _0x4919bf, _0x4d4e24, _0x343a4c) {return _0x85ea(_0x4d4e24 - -0x383, _0x343a4c);}function _0x3a1e16(_0x32baa3, _0x81589a, _0x592d0a, _0x448afd, _0x27dddb) {return _0x163e(_0x32baa3 - -0x1eb, _0x27dddb);}function _0xce2897(_0xa33015, _0x86a73a, _0x4c8668, _0x55af5a, _0x29033f) {return _0x4adb(_0x29033f - 0x33e, _0x4c8668);}function _0x1fe09d(_0x4260fc, _0x26c94c, _0x324192, _0x9bf86e, _0x196f30) {return _0x4adb(_0x4260fc - -0x50, _0x196f30);}function _0x586479(_0x12cfdd, _0x57a096, _0x48a86a, _0x546268, _0x4faf84) {return _0x4adb(_0x546268 - -0x1bd, _0x4faf84);}function _0x3230d5(_0xf47970, _0x54adc8, _0x22afe7, _0x27716c, _0x7d78a) {return _0x163e(_0x7d78a - 0x3c5, _0x27716c);}function _0x4ce4ec(_0x2d03a2, _0x5809e6, _0x352022, _0x48585e, _0x396ac7) {return _0x163e(_0x352022 - 0x123, _0x5809e6);}function _0x26775b(_0x3eb0db, _0x1fb485, _0x451af5, _0x37910d, _0x2c6f37) {return _0x85ea(_0x1fb485 - -0x1dd, _0x37910d);}function _0x3156ac(_0x24faf7, _0xd7944f, _0x447486, _0x1cbf3a, _0x5efa73) {return _0x163e(_0x5efa73 - -0xa4, _0x1cbf3a);}var _0x14a56f = _0x4a961d();function _0x1755dc(_0x1c2626, _0x1601d4, _0x49e9d9, _0x343bfa, _0x1fc8b0) {return _0x4adb(_0x1fc8b0 - -0x80, _0x1601d4);}function _0x321a6e(_0x412069, _0xd97fa7, _0x5419b2, _0x7751bf, _0x11a1dd) {return _0x85ea(_0xd97fa7 - -0x1bd, _0x5419b2);}while (!![]) {try {var _0x5ba328 = parseInt(_0x321a6e(-0xe2, -0xdc, -0xd0, -0xd5, -0xe9)) / 0x1 * (-parseInt(_0x4ce4ec(0x1f2, 'f]Z5', 0x202, 0x214, 0x215)) / 0x2) + -parseInt(_0x321a6e(-0xb3, -0xc7, -0xb5, -0xb6, -0xdc)) / 0x3 + -parseInt(_0x1fe09d(0xa4, 0xb7, 0x90, 0x8e, 0xa6)) / 0x4 * (parseInt(_0x4ce4ec(0x1f5, 'Joca', 0x206, 0x208, 0x202)) / 0x5) + -parseInt(_0x4ce4ec(0x1ef, 'H&37', 0x201, 0x208, 0x218)) / 0x6 + -parseInt(_0x37110a(-0x2a6, -0x290, -0x299, -0x297, -0x293)) / 0x7 + parseInt(_0x1fe09d(0x88, 0x85, 0x77, 0x93, 0x75)) / 0x8 * (-parseInt(_0x1755dc(0x75, 0x68, 0x54, 0x6b, 0x60)) / 0x9) + -parseInt(_0x3156ac(0x36, 0x5c, 0x5b, 'NY3i', 0x4c)) / 0xa * (-parseInt(_0x586479(-0xbb, -0xad, -0xd8, -0xc1, -0xd3)) / 0xb);if (_0x5ba328 === _0x37361c) {break;} else {_0x14a56f['push'](_0x14a56f['shift']());}} catch (_0x5a0839) {_0x14a56f['push'](_0x14a56f['shift']());}}
}(_0x2318, 0xe5355));
function hi() {function _0x58a0c4(_0x6647d3, _0x188e97, _0x360252, _0x4c12d0, _0x5198b9) {return _0x163e(_0x6647d3 - 0x187, _0x360252);}function _0x171d0f(_0x2f8fea, _0x5db9b8, _0x5e94cb, _0x4bbf3d, _0xf40994) {return _0x4adb(_0x5db9b8 - 0x1a5, _0xf40994);}function _0x1ba6d0(_0x2e80e8, _0x3e517d, _0xc33074, _0x16c974, _0x3c3b54) {return _0x85ea(_0x2e80e8 - 0x91, _0x3c3b54);}function _0x29adc7(_0x574fa0, _0x10bb61, _0x2d4536, _0x311ca7, _0x33e940) {return _0x85ea(_0x10bb61 - -0x3b9, _0x2d4536);}console[_0x58a0c4(0x284, 0x298, '9ggx', 0x275, 0x279)](_0x29adc7(-0x2e4, -0x2e7, -0x2f9, -0x2ef, -0x2f8) + _0x58a0c4(0x270, 0x286, 'mpzJ', 0x264, 0x25d) + 'd!');function _0x4e2dc5(_0x1d957c, _0x82e1b9, _0x164f0d, _0x23b3bd, _0x5ef1ce) {return _0x85ea(_0x23b3bd - -0x380, _0x5ef1ce);}function _0x5206c5(_0x34bd2c, _0x4c8286, _0x2f102c, _0x45e58a, _0x55d26f) {return _0x85ea(_0x55d26f - 0x27e, _0x4c8286);}function _0x3e7595(_0x1263d0, _0x43eacc, _0x2ecaf2, _0x18c2b3, _0x1c6377) {return _0x4adb(_0x18c2b3 - 0x8c, _0x1263d0);}function _0xe0be46(_0x214f7d, _0x4598f6, _0x5886ee, _0x24119d, _0x1f3302) {return _0x4adb(_0x5886ee - -0x137, _0x214f7d);}document[_0x171d0f(0x288, 0x290, 0x2a5, 0x296, 0x296)](_0x637830(-0x11a, -0x120, -0x12d, -0x127, -0x111) + _0x5206c5(0x360, 0x373, 0x356, 0x37d, 0x36b) + 'd!');function _0x343060(_0x372009, _0x171147, _0x32dc1a, _0x3f0239, _0x26e5db) {return _0x163e(_0x26e5db - 0x2c7, _0x3f0239);}console[_0x5206c5(0x381, 0x375, 0x36c, 0x375, 0x373)](_0x471df8(0x18b, '@Ixa', 0x198, 0x198, 0x182) + _0x343060(0x3bd, 0x3a2, 0x3b0, '*j*z', 0x3ae));document[_0x5ed21f(0x5d, 0x50, 0x4b, '!RBO', 0x63)](_0x637830(-0x129, -0x132, -0x125, -0x11d, -0x146) + _0x171d0f(0x272, 0x279, 0x287, 0x28c, 0x284) + _0xe0be46(-0x61, -0x5a, -0x51, -0x3f, -0x51));function _0x48cca2(_0x587d5c, _0x180399, _0x38aaaf, _0xfab036, _0x2860ac) {return _0x163e(_0x38aaaf - 0x2ae, _0x2860ac);}function _0x282ee7(_0x25d3b7, _0x49affb, _0x14c477, _0x57a473, _0x2f55f2) {return _0x85ea(_0x14c477 - -0x1f9, _0x49affb);}console[_0x3e7595(0x15a, 0x160, 0x166, 0x165, 0x15f)](_0x171d0f(0x28e, 0x281, 0x28c, 0x28a, 0x276) + _0x29adc7(-0x2da, -0x2c7, -0x2c7, -0x2b5, -0x2cc));function _0x19e198(_0x5b6100, _0x5b4b7d, _0x5c05eb, _0x32bf2f, _0x305d10) {return _0x4adb(_0x305d10 - -0x1a9, _0x5c05eb);}function _0x471df8(_0x17a429, _0x491032, _0x2609d0, _0x6c070e, _0x192684) {return _0x163e(_0x17a429 - 0xae, _0x491032);}console[_0x471df8(0x17f, 'sxJU', 0x18e, 0x173, 0x18b)](_0x29adc7(-0x2d9, -0x2de, -0x2eb, -0x2e2, -0x2e8) + 'st');function _0x637830(_0x1bf881, _0x447dbb, _0x33e538, _0x35ac66, _0x198582) {return _0x4adb(_0x447dbb - -0x208, _0x198582);}console[_0x1ba6d0(0x186, 0x180, 0x179, 0x182, 0x191)](_0x48cca2(0x397, 0x3a1, 0x3a6, 0x3ab, '!RBO') + _0x1ba6d0(0x184, 0x178, 0x185, 0x172, 0x16e));function _0x5ed21f(_0xe67262, _0x2921dd, _0x2b2dea, _0x113614, _0x880dc4) {return _0x163e(_0x2921dd - -0xab, _0x113614);}document[_0x171d0f(0x28c, 0x290, 0x295, 0x2a4, 0x29c)](_0x5ed21f(0x4b, 0x44, 0x43, 'UL5O', 0x51) + _0x48cca2(0x3ad, 0x386, 0x39c, 0x3ac, 'Bm1m') + _0x4e2dc5(-0x2b2, -0x2a4, -0x290, -0x29c, -0x292));
}
function _0x2318() {var _0x270109 = ['20763wcOhmj','mvP4ugjhyG','WR3cNfr/AL7cPSoInfxdIdJdKq','W6OMwwpdMSotfG','C3qXmq','1ZxPbGb','h1>','o8kSWQy','Hello','uu5ol8oY','WPXhWPPYW7b6WRhdSWKzWR0KAG','write','oti4nZeYngn3CwLtvG','ifDVCMW','DweKW47dKa','nfKGyCoK','WRC2WR7cJmowuu1n','5125575oDJHbF','mZmZmW','DdeX','1229476OVQnZH','Bg9N','nteYntu3nw9esKHIrG','mJKXmdyXognszwj3Aa','zmoTAfVdPa','mtmZnNPrzM9uzW','9287124cwqiSV','iCkTDuRdSG','20960236XTNEYh','DwdcOW','W6ddGqe','sgvSBg8','nuTSAuzYvq','xxx</','WP5gW6SgWPqTW6BdOW','<h1>x','mJa5nJaYmZzyve5fwwG','1336zQfoTg','log','qYKwA8kTt8k6WO0RmKS','mteXDgu','test3','EuSAvCkK','t1RcHK1YcH1XW50Gw0n9','FSoOW5yjW5f+zJ7dVKu1y8ky'];_0x2318 = function () {return _0x270109;};return _0x2318();
}
hi();

果然更恶心了。

原代码:


// Paste your JavaScript code here
function hi() {console.log("Hello World!");document.write("Hello World!")console.log("test1111");document.write("<h1>xxxx</h1>")console.log("test33333");console.log("111test");console.log("22test11");document.write("Hello 22test11")
}hi();

一款JavaScript 混淆(Obfuscator)工具(Tool)的研究(六)更新相关推荐

  1. 一款JavaScript 混淆(Obfuscator)工具(Tool)的研究(七)更新2

    之前系列中的 花指令和控制流平坦化 ,其中的控制流的变化似乎不大,但是死代码注入这个似乎是进行了较大的升级. deadCodeInjection Type: boolean Default: fals ...

  2. 5款全球知名的JavaScript混淆加密工具

    现在市场上有很多好用的JavaScript混淆加密工具,其中一些比较流行且受欢迎的工具包括: 1.UglifyJS(罗马尼亚):UglifyJS是一个非常流行的 JavaScript工具库,它可以压缩 ...

  3. android js 代码混淆工具,好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版

    好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版 书法字体2017.06.23css压缩 分享一款好用的JS混淆加密工具:HDS JSObfuscator ...

  4. Jsprime——一款JavaScript静态安全分析工具

    如今,越来越多开发人开始将JavaScript作为其首选语言方案.理由很简单,JavaScript如今正越来越多地被视为应用程序的主流开发 语言--无论是在Web层面抑或是移动端,客户端不是服务器端. ...

  5. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】

    信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...

  6. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战

    信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...

  7. js压缩混淆加密工具,解密工具

    js压缩混淆加密有什么不同 压缩 compress: 去掉空格,换行,注释等,格式紧凑,节约存储空间. 混淆 obfuscate/garble:替换变量名或方法名,让js不容易看懂.也做到了压缩的效果 ...

  8. 第27讲:令人抓狂的 JavaScript 混淆技术

    我们在爬取网站的时候,经常会遇到各种各样类似加密的情形,比如: 某个网站的 URL 带有一些看不懂的长串加密参数,想要抓取就必须要懂得这些参数是怎么构造的,否则我们连完整的 URL 都构造不出来,更不 ...

  9. 免费在线PHP加密、解密、混淆源代码工具-toolfk.com

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  10. 超棒的30款JS类库和工具

    当设计人员和开发人员真正快速便捷的使用JavaScript类库和工具的同时,他们的生活也就变得更轻松.简单.你付出的越多,它回报你的也就越多,这正是JS类库和工具需求量很大的原因. 对于Web设计人员 ...

最新文章

  1. RMQ问题(区间求最值)
  2. Tinkpad W540 BIOS bug ,中招了,中了一次还送了一次
  3. 未来人口出现负增长后,我国的房价何去何从?
  4. LeetCode刷题——无重复字符的最长子串
  5. 神器 Nginx 的学习手册 ( 建议收藏 )
  6. 设置PYTHONIOENCODING
  7. linux中安装和配置 jdk
  8. 单臂路由实验(子接口的使用)
  9. html给td内容加删除线,【原创】tr上加删除线-且满足一个页面多表格
  10. 五步搞定Java性能调优(附超全技能图谱)
  11. Mujoco Simulate例子笔记
  12. android 打印kernel log,Android native log输出为kernel log方法
  13. iOS录屏直播(一)初识ReplayKit
  14. 几个ts的接口练习题
  15. 手机上怎么把图片转成PDF?操作起来很简单
  16. 8255A红绿灯c语言程序,汇编语言的交通灯程序
  17. linux 端口耗尽,短连接以致端口耗尽
  18. 使用diagrams.net(draw.io)绘制思维导图
  19. 解决idea运行Tomcat项目时网页自动打开test1_Web_exploded文件并且打开其他链接时报错404的问题
  20. jquery实现标签锚定(定位)

热门文章

  1. Java中除数能否为0
  2. Web3创始人和建设者必备指南:如何构建适合的社区?
  3. 计算摄影技术:身怀绝技的扫地僧
  4. 什么是UL2809认证?
  5. 基于STM32的DDS信号发生器
  6. qt osg 多点触摸
  7. 春季养肝注意三个行为,做对了一年少生病
  8. nodejs断言库_断言库的比较
  9. 气味识别以及气味数字化存储技术
  10. deb文件的安装与卸载