Задать вопрос
buloshnik
@buloshnik
мужик

Как раскодировать JS код?

Здравствуйте, столкнулся с зашифрованным кодом, который не могу расшифровать. В интернете ничего толкового найти не могу. Может есть какие-то сервисы или расширения для браузеров? Заранее благодарен.
var _0x46f2=["\x3C","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x70\x6C\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x3E","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","","\x6A\x6F\x69\x6E","\x63\x68\x61\x72\x41\x74","\x20","\x2E\x2E\x2E","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x69\x6D\x67","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x54\x61\x67\x4E\x61\x6D\x65","\x79\x65\x73","\x3C\x73\x70\x61\x6E\x20\x73\x74\x79\x6C\x65\x3D\x22\x66\x6C\x6F\x61\x74\x3A\x6C\x65\x66\x74\x3B\x20\x70\x61\x64\x64\x69\x6E\x67\x3A\x30\x70\x78\x20\x31\x30\x70\x78\x20\x35\x70\x78\x20\x30\x70\x78\x3B\x22\x3E\x3C\x69\x6D\x67\x20\x73\x72\x63\x3D\x22","\x73\x72\x63","\x22\x20\x77\x69\x64\x74\x68\x3D\x22","\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3D\x22","\x70\x78\x22\x2F\x3E\x3C\x2F\x73\x70\x61\x6E\x3E","\x3C\x64\x69\x76\x3E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x3C\x2F\x64\x69\x76\x3E","\x3C\x61\x20\x68\x72\x65\x66\x3D\x27\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x61\x79\x32\x74\x68\x65\x6D\x65\x73\x2E\x63\x6F\x6D\x2F\x27\x3E\x57\x61\x79\x32\x74\x68\x65\x6D\x65\x73\x3C\x2F\x61\x3E","\x68\x74\x6D\x6C","\x23\x6D\x79\x63\x6F\x6E\x74\x65\x6E\x74","\x23\x6D\x79\x63\x6F\x6E\x74\x65\x6E\x74\x3A\x76\x69\x73\x69\x62\x6C\x65","\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x61\x79\x32\x74\x68\x65\x6D\x65\x73\x2E\x63\x6F\x6D\x2F","\x72\x65\x61\x64\x79"];function removeHtmlTag(_0x8930x2,_0x8930x3){if(_0x8930x2[_0x46f2[1]](_0x46f2[0])!=-1){var _0x8930x4=_0x8930x2[_0x46f2[2]](_0x46f2[0]);for(var _0x8930x5=0;_0x8930x5<_0x8930x4[_0x46f2[3]];_0x8930x5++){if(_0x8930x4[_0x8930x5][_0x46f2[1]](_0x46f2[4])!=-1){_0x8930x4[_0x8930x5]=_0x8930x4[_0x8930x5][_0x46f2[5]](_0x8930x4[_0x8930x5][_0x46f2[1]](_0x46f2[4])+1,_0x8930x4[_0x8930x5][_0x46f2[3]]);} ;} ;_0x8930x2=_0x8930x4[_0x46f2[7]](_0x46f2[6]);} ;_0x8930x3=(_0x8930x3<_0x8930x2[_0x46f2[3]]-1)?_0x8930x3:_0x8930x2[_0x46f2[3]]-2;while(_0x8930x2[_0x46f2[8]](_0x8930x3-1)!=_0x46f2[9]&&_0x8930x2[_0x46f2[1]](_0x46f2[9],_0x8930x3)!=-1){_0x8930x3++;} ;_0x8930x2=_0x8930x2[_0x46f2[5]](0,_0x8930x3-1);return _0x8930x2+_0x46f2[10];} ;function createSummaryAndThumb(_0x8930x7){var _0x8930x8=document[_0x46f2[11]](_0x8930x7);var _0x8930x9=_0x46f2[6];var _0x8930xa=_0x8930x8[_0x46f2[13]](_0x46f2[12]);var _0x8930xb=summary_noimg;if(thumbnail_mode==_0x46f2[14]){if(_0x8930xa[_0x46f2[3]]>=1){_0x8930x9=_0x46f2[15]+_0x8930xa[0][_0x46f2[16]]+_0x46f2[17]+img_thumb_width+_0x46f2[18]+img_thumb_height+_0x46f2[19];_0x8930xb=summary_img;} ;} ;var _0x8930xc=_0x8930x9+_0x46f2[20]+removeHtmlTag(_0x8930x8[_0x46f2[21]],_0x8930xb)+_0x46f2[22];_0x8930x8[_0x46f2[21]]=_0x8930xc;} ;$(document)[_0x46f2[30]](function (){$(_0x46f2[25])[_0x46f2[24]](_0x46f2[23]);setInterval(function (){if(!$(_0x46f2[26])[_0x46f2[3]]){window[_0x46f2[28]][_0x46f2[27]]=_0x46f2[29];} ;} ,3000);} );
  • Вопрос задан
  • 16353 просмотра
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
ну... для начала приведите к нормальному виду массив с эллементами. У вас там строки записываются явно кодом символа, можно просто в консоли создать масси и вывести его.
var parts = ["<", "indexOf", "split", "length", ">", "substring", "", "join", "charAt", " ", "...", "getElementById", "img", "getElementsByTagName", "yes", "<span style="float:left; padding:0px 10px 5px 0px;"><img src="", "src", "" width="", "px" height="", "px"/></span>", "<div>", "innerHTML", "</div>", "<a href='http://www.way2themes.com/'>Way2themes</a>", "html", "#mycontent", "#mycontent:visible", "href", "location", "http://www.way2themes.com/", "ready"];


затем замените обращения к эллементам массива _0x46f2 на собственно значение, и получите свой код. Нужно будет только переменные по переименовывать. Большую часть работы можно регурярками выполнить.

"тут исходник, лень копипастить"code.replace(/\_0x46f2\[(\d+)\]/g, function (matched, idx) {
    return '\''+_0x46f2[idx]+'\'';
});


на выходе получаем (если прогнать через beautifier)
function removeHtmlTag(_0x8930x2, _0x8930x3) {
    if (_0x8930x2['indexOf']('<') != -1) {
        var _0x8930x4 = _0x8930x2['split']('<');
        for (var _0x8930x5 = 0; _0x8930x5 < _0x8930x4['length']; _0x8930x5++) {
            if (_0x8930x4[_0x8930x5]['indexOf']('>') != -1) {
                _0x8930x4[_0x8930x5] = _0x8930x4[_0x8930x5]['substring'](_0x8930x4[_0x8930x5]['indexOf']('>') + 1, _0x8930x4[_0x8930x5]['length']);
            };
        };
        _0x8930x2 = _0x8930x4['join']('');
    };
    _0x8930x3 = (_0x8930x3 < _0x8930x2['length'] - 1) ? _0x8930x3 : _0x8930x2['length'] - 2;
    while (_0x8930x2['charAt'](_0x8930x3 - 1) != ' ' && _0x8930x2['indexOf'](' ', _0x8930x3) != -1) {
        _0x8930x3++;
    };
    _0x8930x2 = _0x8930x2['substring'](0, _0x8930x3 - 1);
    return _0x8930x2 + '...';
};

function createSummaryAndThumb(_0x8930x7) {
    var _0x8930x8 = document['getElementById'](_0x8930x7);
    var _0x8930x9 = '';
    var _0x8930xa = _0x8930x8['getElementsByTagName']('img');
    var _0x8930xb = summary_noimg;
    if (thumbnail_mode == 'yes') {
        if (_0x8930xa['length'] >= 1) {
            _0x8930x9 = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="' + _0x8930xa[0]['src'] + '" width="' + img_thumb_width + 'px" height="' + img_thumb_height + 'px"/></span>';
            _0x8930xb = summary_img;
        };
    };
    var _0x8930xc = _0x8930x9 + '<div>' + removeHtmlTag(_0x8930x8['innerHTML'], _0x8930xb) + '</div>';
    _0x8930x8['innerHTML'] = _0x8930xc;
};
$(document)['ready'](function () {
    $('#mycontent')['html']('<a href="http: //www.way2themes.com/">Way2themes</a>');
    setInterval(function () {
        if (!$('#mycontent:visible')['length']) {
            window['location']['href'] = 'http://www.way2themes.com/';
        };
    }, 3000);
});


дальше дело за малым, нужно переменные попереименовывать и слегка отрефакторить код.
Ответ написан
Screatch
@Screatch
Ruby On Rails front-end developer
Для автоматизации процесса, есть замечательный сервис:
jsbeautifier.org

Однако как отметил предыдщий комментатор, название переменных придётся всё равно переименовывать т.к. они были уже заведомо изменены обфускатором.
Ответ написан
@spamspam
Всё намного проще!

https://www.rapidtables.org/ru/convert/number/hex-...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы