13

你知道那些打包好的 js 文件是什么样子的吧?

eval(function(p,a,c,k,e,d){ ... } ('混淆字符串'.split('|'),0,{}))

碰巧我必须调整一些看起来像这样的大型遗留代码,我想找到一种方法将其变成更具可读性的版本。

如果那不可能,我至少可以摆脱评估吗?

4

4 回答 4

14

JS Beautifier 将重新格式化和解包:

http://jsbeautifier.org/

于 2011-02-09T07:24:45.647 回答
12

您可以使用在线解包器:尝试其中一种,找到适合您的:

于 2010-03-17T08:39:31.480 回答
2

这是一个拆包器

于 2010-03-17T08:41:51.817 回答
0
eval(function(W,H,A,K){function z(i){return(i< 62?'':z(this['parseInt'](i/62)))+((i=i%62)>35?String.fromCharCode(i+29):i.toString(36))}for(var i=0;i<W.length;i++)A[z(i)]=W[i];function d(w){return A[w]?A[w]:w;};return H.replace(/\b\w+\b/g,d);}('alert|Testing|packed'.split('|'),'0("1 0 2");',{}));

我所做的是将 eval 更改为 document.getElementByID('test').value= 然后确保我有一个 textarea (没有 DOM 解析,多行) wuth id

test.value=(function(W,H,A,K){function z(i){return(i< 62?'':z(this['parseInt'](i/62)))+((i=i%62)>35?String.fromCharCode(i+29):i.toString(36))}for(var i=0;i<W.length;i++)A[z(i)]=W[i];function d(w){return A[w]?A[w]:w;};return H.replace(/\b\w+\b/g,d);}('alert|Testing|packed'.split('|'),'0("1 0 2");',{}));
<textarea id=test rows=9 cals=77></textarea>

='测试'

于 2015-07-20T22:15:37.013 回答