混同是一种罕用的 JavaScript 优化技术,它通过将代码重新命名、删除正文、简化代码等形式来减小代码体积和减少代码难度。
然而,有时候咱们须要查看混同后的代码,或者心愿将其转换回原始的未混同的版本。这时,就须要应用解密工具或者服务。
废话不多说了,贴一个昨天解的JS,局部源码如下
function F() { var b0 = a6 , L = { 'yZsYB': function(U) { var aZ = b; return c[aZ(0x19f)](U); }, 'VghoS': function(U, V) { return c['tcBNB'](U, V); }, 'nNJLf': c[b0(0x23e)], 'pGahF': function(U, V) { var b1 = b0; return c[b1(0x1d7)](U, V); }, 'VaHEo': function(U, V) { var b2 = b0; return c[b2(0x232)](U, V); }, 'mjZFK': c[b0(0x103)], 'UXLxj': function(U, V) { return c['lNpLw'](U, V); }, 'dciVZ': c[b0(0x238)], 'iOrAA': c[b0(0xfe)], 'GBlxF': function(U, V) { var b3 = b0; return c[b3(0x121)](U, V); }, 'UekeV': function(U, V) { var b4 = b0; return c[b4(0x154)](U, V); }, 'oRfMK': c[b0(0x1a4)], 'zgvgB': function(U, V) { var b5 = b0; return c[b5(0x233)](U, V); }, 'LeAcS': b0(0x184), 'nljZJ': c[b0(0x13b)], 'BvFdD': function(U, V) { return c['TTOjc'](U, V); }, 'cWMyz': function(U, V) { var b6 = b0; return c[b6(0x10c)](U, V); }, 'YOqtZ': c[b0(0x256)] }; if (c[b0(0x23d)] !== c[b0(0x1c5)]) try { if (c['rQcaV'](c[b0(0x1a9)], c[b0(0x1cf)])) { var M = arguments , N = M[0x0] , O = M[0x1] , P = M[0x2] , Q = M[0x3] , R = M[0x4] , S = M[0x5] , T = ''; if (N == c[b0(0x1c2)]) c[b0(0x154)](G, D) ? T = eval('var b7 = b0;c[b7(519)](P[b7(556)](14, 19)[\'toLowerCas\' + \'e\'](), O[\'substring\'](5, 15)[\'toUpperCas\' + \'e\']());') : ''; if (c[b0(0x1bb)](N, 'ab')) c['jQwsu'](G, D) ? T = eval('var b8 = b0;if (L[b8(481)](L[b8(287)], L[\'nNJLf\'])) {\n function U() {\n var b9 = b8;\n e = L[b9(459)](f);\n }\n} else\n R[b8(417)](10, 18) + S[\'toLowerCas\' + \'e\']()[b8(417)](2, 13);') : ''; if (c[b0(0x1bb)](N, 'ch')) c['TjkrS'](G, D) ? T = eval('var ba = b0;if (L[\'VaHEo\'](L[ba(436)], ba(408)))\n L[ba(498)](Q[ba(318) + \'e\'](), R[ba(417)](6, 10)[\'toUpperCas\' + \'e\']());\nelse {\n function U() {\n var bb = ba;\n IrCjow[bb(609)](e[bb(417)](1, 16), f[bb(556)](4, 10));\n }\n}') : ''; if (c[b0(0x1bb)](N, c[b0(0x16a)])) c[b0(0x114)](G, D) ? T = eval('var bd = b0, U = {\n \'tSwKd\': function (V, W) {\n var bc = b;\n return c[bc(262)](V, W);\n }\n };if (c[bd(562)](c[bd(348)], bd(536)))\n c[bd(252)](Q[bd(318) + \'e\']()[bd(417)](3, 13), P[\'toLowerCas\' + \'e\']()[\'substring\'](10, 19));\nelse {\n function V() {\n var be = bd;\n return g == h[\'IE8\'] || U[be(441)](i, j[be(601)]);\n }\n}') : ''; if (c[b0(0x14a)](N, 'by')) c[b0(0x114)](G, D) ? T = eval('var bf = b0;if (L[\'dciVZ\'] !== L[bf(612)])\n L[\'GBlxF\'](O[\'substring\'](5, 8), P[bf(508)](/a/gi, \'c\'));\nelse {\n function U() {\n l[m] = n[o] == p ? q[r] : s[N];\n }\n}') : ''; if (c[b0(0x14a)](N, 'xa')) G(D) ? T = eval('var bg = b0;O[bg(417)](1, 16) + S[bg(556)](4, 10);') : ''; if (c[b0(0xf0)](N, c['YtWmo'])) c['XMngE'](G, D) ? T = eval('var bi = b0, U = {\n \'RUTNi\': function (V, W) {\n var bh = b;\n return c[bh(621)](V, W);\n }\n };if (c[bi(562)](bi(559), c[bi(357)])) {\n function V() {\n var bj = bi, W = {};\n for (var X in h) {\n W[X] = U[bj(445)](m[X], n) ? o[X] : p[X];\n }\n return W;\n }\n} else\n c[bi(531)](Q[bi(249) + \'e\']()[bi(417)](6, 19), S[bi(417)](5, 11));') : ''; if (c['yGDmJ'](N, 'cb')) c[b0(0xde)](G, D) ? T = eval('var bl = b0, U = {\n \'valoj\': function (V, W) {\n var bk = b;\n return L[bk(390)](V, W);\n },\n \'yMYZP\': L[bl(331)]\n };if (L[\'zgvgB\'](L[bl(363)], L[bl(460)])) {\n function V() {\n var bm = bl;\n return U[bm(613)](E, U[bm(312)]);\n }\n} else\n L[\'GBlxF\'](S[bl(417)](5, 14), P[bl(417)](2, 13)[bl(318) + \'e\']());') : ''; return T; } else { function U() { var bn = b0; try { if (L['BvFdD'](typeof k, bn(0x14c))) return ![]; var V = bn(0x124) + L['cWMyz'](new l(), 0x0) , W = W[bn(0x14e) + bn(0x1e4)](bn(0x164)) , X = W[bn(0x20b) + bn(0x162)]('head')[0x0]; return X[bn(0x163) + 're'](W, X[bn(0x1a8)]), W['text'] = L[bn(0xdd)](V, L[bn(0x167)]), X[bn(0x173) + 'd'](W), L[bn(0x1c9)](m[V], n[V]); } catch (Y) { return ![]; } } } } catch (V) { if (c[b0(0x14d)](c[b0(0x248)], c[b0(0x248)])) return T; else { function W() { var bo = b0; g[bo(0x1b1)](L['UekeV'](h, i[j])); } } } else { function X() { var bp = b0; return e(c[bp(0x213)](c[bp(0x1d0)], f)); } } }
我解完之后
function countPrm() { try { var type = arguments[0], arg1 = arguments[1], arg2 = arguments[2], arg3 = arguments[3], arg4 = arguments[4], arg5 = arguments[5], res = ''; if (type == "cca") { buildScript($win) ? res = (arg2.slice(14, 19).toLowerCase() + arg1.substring(5, 15).toUpperCase()) : ''; } if (type == 'ab') { buildScript($win) ? res = (arg4.substring(10, 18) + arg5.toLowerCase().substring(2, 13)) : ''; } if (type == 'ch') { buildScript($win) ? res = (arg3.toUpperCase() + arg4.substring(6, 10).toUpperCase()) : ''; } if (type == "cbc") { buildScript($win) ? res = (arg3.toUpperCase().substring(3, 13) + arg2.toLowerCase().substring(10, 19)) : ''; } if (type == 'by') { buildScript($win) ? res = (arg1.substring(5, 8) + arg2.replace(/a/gi, 'c')) : ''; } if (type == 'xa') { buildScript($win) ? res = (arg1.substring(1, 16) + arg5.slice(4, 10)) : ''; } if (type == "cza") { buildScript($win) ? res = (arg3.toLowerCase().substring(6, 19) + arg5.substring(5, 11)) : ''; } if (type == 'cb') { buildScript($win) ? res = (arg5.substring(5, 14) + arg2.substring(2, 13).toUpperCase()) : ''; } return res; } catch (e) { return res; }}
解密后感言
我很少见到这么丧心病狂的加密形式,能够说仅次于jsjiami.com的中级模式。
有其余加密也能够找咱们解密,能够说没有解不开的,只有解密老本问题。
jsjiami.com 底部有我的联系方式