解密javascript文件



我有一个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]);
    }
    ;

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

从我可以快速看到的,0xbad7是一个包含大多数函数名称,选择器,函数参数等的数组。您可以做的一件事是在特定索引中包含的值与0xbad7[x]引用之间进行插值。

你可以很容易地使用下面的东西自动化这个过程,但是它不会很好地工作与对象引用,因为你将结束与[object Object],但你可以使解决方案更智能一点,找出什么是对象的构造函数和类似的东西。

玩得开心!

http://jsbin.com//agikay/1/编辑

//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];
});

最新更新