【问题标题】:How to unpack the contents of a JavaScript file?如何解压 JavaScript 文件的内容?
【发布时间】:2011-01-28 11:30:38
【问题描述】:

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

 eval(function(p,a,c,k,e,d){ ... } ('obfuscated-string'.split('|'),0,{}))

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

如果这不可能,我至少可以摆脱 eval 吗?

【问题讨论】:

    标签: javascript eval unpack compression


    【解决方案1】:

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

    http://jsbeautifier.org/

    【讨论】:

    • 我用它来解压一个复杂的javascript。它干净地打开了包装。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这是unpacker

      【讨论】:

        【解决方案4】:
        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&lt; 62?'':z(this['parseInt'](i/62)))+((i=i%62)&gt;35?String.fromCharCode(i+29):i.toString(36))}for(var i=0;i&lt;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");',{}));
        &lt;textarea id=test rows=9 cals=77&gt;&lt;/textarea&gt;

        ='测试'

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-23
        • 2016-04-04
        相关资源
        最近更新 更多