在.js存档中解密

时间:2015-03-04 03:06:27

标签: javascript

我无法解密,甚至不知道使用此代码的加密类型。谢谢

 eval(function (a, b, c, d, e, f) {
        e = function (a) {
            return a.toString(b);
        };
        if (!'' ['|'](/^/, String)) {
            while (c--) f[e(c)] = d[c] || e(c);
            d = [function (a) {
                return f[a];
            }];
            e = function () {
                return 'ifr2|document|ready|function|if|liberado|false|ifr|attr|id|appendTo|publicidade|propaganda2';
            };
            c = 1;
        }
        while (c--) if (d[c]) a = a['|'](new RegExp('replace' + e(c) + 'replace', '\\w+'), d[c]);
        return a;
    }('0', 13, 13, '#b-c' ['split']('#0'), 0, {}));

1 个答案:

答案 0 :(得分:0)

没有任何“解密”因为没有加密(你可能会称之为'模糊')。 它只是简单的vanilla javascript(作为开发人员,如果您可以访问所有代码,应该能够阅读)。

然而,有两个严重的问题(但解释它们会引导你回答):

  1. 我们不知道String.prototype['|']的方法是什么,因为您还没有发布它的代码(以及此函数可能依赖的其他代码)。
    您可以console.log( String.prototype['|'].toSource() );获取该代码 然而,我们知道(至少)2个参数(按顺序):

    1. 正则表达式对象/replaceifr2|document|ready|function|if|liberado|false|ifr|attr|id|appendTo|publicidade|propaganda2replace/

    2. 函数d(如果if条件为真)
      OR字符串#b-c(如果if条件失败),在这种情况下它会尝试生成正则表达式/replace0replace/

  2. new RegExp(/*string here*/, '\\w+') 会抛出错误,因为第二个可选参数\\w+非法标志
    无论条件是否失败,您当前发布的代码都将失败

  3. 我试图推断出String的原型上的|可能会做什么(我喜欢谜语,我很伤心,我无法解决这个问题)但是你的问题中没有足够的代码。我非常怀疑它是iframe注射(和观察者)例程的一部分。