解密javascript文件

时间:2013-04-18 19:24:04

标签: javascript encryption hex

我遇到了一个我从未见过的javascript文件的问题。我不知道它是如何工作我发布文件的一部分请帮助我如何解密这样的文件。这是分配给我的任务,我通过互联网搜索但没有找到任何内容

$(document)[_0xbad7[169]](function ()
{
    var _0x99f1x1=false;
    var _0x99f1x2=false;
    var _0x99f1x3=false;
    var _0x99f1x4=false;
    var _0x99f1x5=_0xbad7[0];
    var _0x99f1x6=0;
    var _0x99f1x7=1;
    $(_0xbad7[2])[_0xbad7[1]](function (_0x99f1x8)
    {
    }
    );
    function _0x99f1x9()
    {
        $(_0xbad7[5])[_0xbad7[4]](_0xbad7[3],_0xbad7[0]);
        $(_0xbad7[9])[_0xbad7[8]](_0xbad7[6],_0xbad7[7]);
        $(_0xbad7[10])[_0xbad7[8]](_0xbad7[6],_0xbad7[7]);
        $(_0xbad7[11])[_0xbad7[8]](_0xbad7[6],_0xbad7[7]);
        $(_0xbad7[12])[_0xbad7[8]](_0xbad7[6],_0xbad7[7]);
        _0x99f1x7=1;
    }
    ;
    function _0x99f1xa(_0x99f1xb)
    {
        $(_0xbad7[14])[_0xbad7[8]](_0xbad7[13],_0x99f1xb);
    }
    ;
    function _0x99f1xc()
    {
        _0x99f1x1f(_0xbad7[15],_0xbad7[16],_0xbad7[16]);
        _0x99f1x1f(_0xbad7[17],_0xbad7[16],_0xbad7[18]);
        _0x99f1x1f(_0xbad7[19],_0xbad7[16],_0xbad7[20]);
        _0x99f1x1f(_0xbad7[21],_0xbad7[16],_0xbad7[22]);
        _0x99f1x1f(_0xbad7[23],_0xbad7[24],_0xbad7[16]);
        _0x99f1x1f(_0xbad7[25],_0xbad7[24],_0xbad7[18]);
        _0x99f1x1f(_0xbad7[26],_0xbad7[24],_0xbad7[20]);
        _0x99f1x1f(_0xbad7[27],_0xbad7[24],_0xbad7[22]);
    }
    ;

1 个答案:

答案 0 :(得分:1)

该代码是使用工具(例如jsobfuscate)进行混淆的普通JavaScript代码,以使任何想要窃取或复制它的人感到痛苦。从技术上讲,如果作者花时间尝试保护他的代码,那就意味着你不能使用任何代码。但是,有一些tools有助于使这个混乱变得更容易理解,但他们仍然不会为你解决这个问题。

从我可以很快看到的,0xbad7是一个包含大多数函数名,选择器,函数参数等的数组。你可以做的一件事就是在特定索引包含的值和0xbad7[x]引用。

您可以使用类似下面的内容轻松自动执行该过程,但是对于对象引用它将无法正常工作,因为您最终会使用[object Object],但您可以使解决方案更加智能化什么是对象的构造函数和类似的东西。

玩得开心!

http://jsbin.com/#/agikay/1/edit

//get a reference to the _0xbad7 array
//and do something like...
var _0xbad7 = ['item0', 'item1', 'item2', 'item3', 'item4', 'item5'],
    txt = document.querySelector('textarea');

txt.value = txt.value.replace(/_0xbad7\[(\d+)\]/g, function ($0, $1) {
  return _0xbad7[$1];
});