【问题标题】:Can You decrypt this javascript?你能解密这个javascript吗?
【发布时间】:2019-10-28 19:57:04
【问题描述】:

我想知道如何知道这个 java 里面有什么!那么有没有办法知道这个javascript代码是什么,如果这看起来很奇怪,我很抱歉。也想知道这种加密的类型。

    var _0x4816=["\x24\x28\x69\x29\x5B\x27\x66\x27\x5D\x28\x35\x28\x29\x7B\x24\x28\x27\x23\x33\x27\x29\x5B\x27\x6A\x27\x5D\x28\x27\x3C\x61\x20\x34\x3D\x22\x32\x3A\x2F\x2F\x36\x2E\x37\x2E\x38\x22\x20\x63\x3D\x22\x64\x22\x20\x65\x3D\x22\x62\x22\x20\x67\x3D\x22\x68\x3A\x39\x21\x30\x3B\x6B\x3A\x31\x21\x30\x3B\x6C\x3A\x6D\x21\x30\x22\x3E\u062A\u0635\u0645\u064A\u0645\x3A\u0639\u0628\u062F\u0648\x20\u062A\u0643\u0646\u0648\u0644\u0648\u062C\u064A\x3C\x2F\x61\x3E\x27\x29\x2C\x6E\x28\x35\x28\x29\x7B\x24\x28\x27\x23\x33\x3A\x39\x27\x29\x5B\x27\x6F\x27\x5D\x7C\x7C\x28\x70\x5B\x27\x71\x27\x5D\x5B\x27\x34\x27\x5D\x3D\x27\x32\x3A\x2F\x2F\x36\x2E\x37\x2E\x38\x27\x29\x7D\x2C\x72\x29\x7D\x29\x3B","\x7C","\x73\x70\x6C\x69\x74","\x69\x6D\x70\x6F\x72\x74\x61\x6E\x74\x7C\x7C\x68\x74\x74\x70\x7C\x64\x6F\x6E\x74\x65\x64\x69\x74\x7C\x68\x72\x65\x66\x7C\x66\x75\x6E\x63\x74\x69\x6F\x6E\x7C\x77\x77\x77\x7C\x61\x62\x64\x6F\x75\x74\x65\x63\x68\x7C\x63\x6F\x6D\x7C\x76\x69\x73\x69\x62\x6C\x65\x7C\x7C\x5F\x62\x6C\x61\x6E\x6B\x7C\x72\x65\x6C\x7C\x64\x6F\x66\x6F\x6C\x6C\x6F\x77\x7C\x74\x61\x72\x67\x65\x74\x7C\x72\x65\x61\x64\x79\x7C\x73\x74\x79\x6C\x65\x7C\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79\x7C\x64\x6F\x63\x75\x6D\x65\x6E\x74\x7C\x68\x74\x6D\x6C\x7C\x6F\x70\x61\x63\x69\x74\x79\x7C\x70\x6F\x73\x69\x74\x69\x6F\x6E\x7C\x72\x65\x6C\x61\x74\x69\x76\x65\x7C\x73\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x7C\x6C\x65\x6E\x67\x74\x68\x7C\x77\x69\x6E\x64\x6F\x77\x7C\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x7C\x33\x65\x33","\x72\x65\x70\x6C\x61\x63\x65","","\x5C\x77\x2B","\x5C\x62","\x67"];
eval(function(_0x9bccx1,_0x9bccx2,_0x9bccx3,_0x9bccx4,_0x9bccx5,_0x9bccx6)
    {
    _0x9bccx5= function(_0x9bccx3)
        {
        return _0x9bccx3.toString(_0x9bccx2)
    };
    if(!_0x4816[5][_0x4816[4]](/^/,String))
        {
        while(_0x9bccx3--)
            {
            _0x9bccx6[_0x9bccx5(_0x9bccx3)]= _0x9bccx4[_0x9bccx3]|| _0x9bccx5(_0x9bccx3)
        };
        _0x9bccx4= [function(_0x9bccx5)
            {
            return _0x9bccx6[_0x9bccx5]
        }
        ];
        _0x9bccx5= function()
            {
            return _0x4816[6]
        };
        _0x9bccx3= 1
    };
    while(_0x9bccx3--)
        {
        if(_0x9bccx4[_0x9bccx3])
            {
            _0x9bccx1= _0x9bccx1[_0x4816[4]]( new RegExp(_0x4816[7]+ _0x9bccx5(_0x9bccx3)+ _0x4816[7],_0x4816[8]),_0x9bccx4[_0x9bccx3])
        }
    };
    return _0x9bccx1
}
(_0x4816[0],28,28,_0x4816[3][_0x4816[2]](_0x4816[1]),0,
    {
}
))

【问题讨论】:

  • 用打印LOL替换eval
  • 这叫混淆,不是加密。

标签: javascript encryption eval decode


【解决方案1】:

脚本没有加密,而是混淆了,但是,为了减少你的好奇心,我去混淆后看下面的脚本:

 var z = ["$(i)[\'f\'](5(){$(\'#3\')[\'j\'](\'<a 4=\"2://6.7.8\" c=\"d\" e=\"b\" g=\"h:9!0;k:1!0;l:m!0\">تصميم:عبدو تكنولوجي</a>\'),n(5(){$(\'#3:9\')[\'o\']||(p[\'q\'][\'4\']=\'2://6.7.8\')},r)});", "|", "split", "important||http|dontedit|href|function|www|abdoutech|com|visible||_blank|rel|dofollow|target|ready|style|visibility|document|html|opacity|position|relative|setInterval|length|window|location|3e3", "replace", "", "\\w+", "\\b", "g"];
 eval(function(a, b, c, d, e, f) {
         e = function(g) {
             return g.toString(b)
         };
         if (!z[5][z[4]](/^/, String)) {
             while (g--) {
                 f[e(g)] = d[g] || e(g)
             };
             d = [function(e) {
                 return f[e]
             }];
             e = function() {
                 return z[6]
             };
             g = 1
         };
         while (g--) {
             if (d[g]) {
                 a = a[z[4]](new RegExp(z[7] + e(g) + z[7], z[8]), d[g])
             }
         };
         return a
     }
     (z[0], 28, 28, z[3][z[2]](z[1]), 0, {}))

更新 1:

见:

How does this obfuscated JavaScript work?

完整的解释:)


更新 2:

既然你问我里面的脚本,我得到了什么:

$(document)['ready'](function() {
    $('#dontedit')['html']('<a href="http://www.abdoutech.com" rel="dofollow" target="_blank" style="visibility:visible!important;opacity:1!important;position:relative!important">تصميم:عبدو تكنولوجي</a>'), setInterval(function() {
        $('#dontedit:visible')['length'] || (window['location']['href'] = 'http://www.abdoutech.com')
    }, 3e3)
})

简化代码:

$(document).ready(function() {
    $('#dontedit').html('<a href="http://www.abdoutech.com" rel="dofollow" target="_blank" style="visibility:visible!important;opacity:1!important;position:relative!important">تصميم:عبدو تكنولوجي</a>');

    setInterval(function() {
        $('#dontedit:visible').length || (window.location.href = 'http://www.abdoutech.com')
    }, 3e3);
});

【讨论】:

  • 我明白了,但我会解释一下,这是原始代码rawgit.com/abdelalilebbihi/lebbihi.dz/master/timerbody.js,我解压后给了我上面的代码,所以我需要知道里面是什么
  • 不是纯粹的原始代码,但至少可以更容易阅读。因为在混淆器处理的时候,根本没有存储原始数据,所以我们无法将代码返回为原始数据。但总的来说,上述脚本仍然会像您提供的脚本一样运行。
  • 我已经添加了混淆器在javascript中如何工作的链接,请查看我给出的答案
  • @k76 :查看我的最新更新。顺便说一句,请不要更改您的评论,因为讨论已经不清楚了。
  • @Fadhly Permata:我不会改变任何评论,顺便说一句,它给了我同样的感觉。但是当我在模板中发布它时,它可以工作,但计时器不起作用,因为计时器之前的原始代码工作,我也尝试找到退出,也等待你的帮助
猜你喜欢
  • 1970-01-01
  • 2021-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 2017-12-23
  • 2015-11-27
  • 1970-01-01
相关资源
最近更新 更多