Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.08.2013, 12:18
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

ДЕобфускация
добрый день
какими инструментами можно воспользоваться, чтобы в запутанном коде видеть результат работы указанной функции, и чтобы значение любой переменной можно было вывести?
когда я вручную пытаюсь, мне обработчик пишет - эта переменная неопределена, та функция не обозначена, тут не так, там не эдак.. как этот хаос разобрать?
Ответить с цитированием
  #2 (permalink)  
Старый 13.08.2013, 12:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

greenwar,
Пример куска кода ?
Ответить с цитированием
  #3 (permalink)  
Старый 13.08.2013, 13:05
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

$.ajax({
            type: "POST",
            url: "/stat/" + url,
            dataType: "json",
            data: params
        }).success(function (data) {
            var _0x79c4 = ["\x63\x61\x70\x74\x63\x68\x61", "\x62\x2D\x70\x6F\x70\x75\x70\x61", "\x62\x65\x6D", "\x2E\x62\x2D\x70\x61\x67\x65\x5F\x5F\x63\x61\x70\x74\x63\x68\x61\x2D\x70\x6F\x70\x75\x70", "\x73\x72\x63", "\x69\x6D\x61\x67\x65", "\x65\x6C\x65\x6D", "\x75\x72\x6C", "", "\x76\x61\x6C", "\x62\x2D\x66\x6F\x72\x6D\x2D\x69\x6E\x70\x75\x74", "\x66\x69\x6E\x64\x42\x6C\x6F\x63\x6B\x49\x6E\x73\x69\x64\x65", "\x73\x75\x62\x6D\x69\x74", "\x6F\x66\x66", "\x66\x6F\x72\x6D", "\x68\x69\x64\x65", "\x6B\x65\x79", "\x65\x78\x74\x65\x6E\x64", "\x73\x68\x6F\x77", "\x66\x6F\x63\x75\x73\x65\x64", "\x79\x65\x73", "\x73\x65\x74\x4D\x6F\x64", "\x62\x6C\x6F\x63\x6B\x65\x64", "\x68\x72\x65\x66", "\x6C\x6F\x63\x61\x74\x69\x6F\x6E", "\x68\x74\x74\x70\x3A\x2F\x2F\x62\x6C\x6F\x63\x6B\x2E\x79\x61\x6E\x64\x65\x78\x2E\x72\x75", "\x64\x61\x74\x61", "\x73\x75\x62\x73\x74\x72", "\x75\x73\x65\x72\x41\x67\x65\x6E\x74", "\x66\x75\x69\x64\x30\x31", "\x63\x6F\x6F\x6B\x69\x65", "\x6C\x65\x6E\x67\x74\x68", "\x63\x68\x61\x72\x43\x6F\x64\
x65\x41\x74", "\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65", "\x5E\x25\x37\x42\x2E\x2A\x25\x37\x44\x24", "\x6D\x61\x74\x63\x68", "\x70\x61\x72\x73\x65\x4A\x53\x4F\x4E", "\x6C\x6F\x61\x64", "\x77\x6F\x72\x64\x73", "\x74\x72\x69\x67\x67\x65\x72", "\x77\x73\x6C\x72", "\x63\x68\x61\x6E\x6E\x65\x6C", "\x2E\x62\x2D\x77\x6F\x72\x64\x73\x74\x61\x74\x2D\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x5F\x63\x6F\x6E\x74\x65\x6E\x74", "\x61\x70\x70\x6C\x79", "\x75\x70\x64\x61\x74\x65", "\x44\x4F\x4D"];
            if (_0x79c4[0] in data) {
                var captcha_popup = $(_0x79c4[3])[_0x79c4[2]](_0x79c4[1]);
                captcha_popup[_0x79c4[6]](_0x79c4[5])[0][_0x79c4[4]] = data[_0x79c4[0]][_0x79c4[7]];
                captcha_popup[_0x79c4[11]](_0x79c4[10])[_0x79c4[9]](_0x79c4[8]);
                captcha_popup[_0x79c4[6]](_0x79c4[14])[_0x79c4[12]](function () {
                    captcha_popup[_0x79c4[6]](_0x79c4[14])[_0x79c4[13]](_0x79c4[12]);
                    captcha_popup[_0x79c4[15]]();
                    BEM.WSLR(url, $[_0x79c4[17]]({}, params, {
                        captcha_key: data[_0x79c4[0]][_0x79c4[16]],
                        captcha_value: captcha_popup[_0x79c4[11]](_0x79c4[10])[_0x79c4[9]]()
                    }));
                    return false
                });
                captcha_popup[_0x79c4[18]]();
                captcha_popup[_0x79c4[11]](_0x79c4[10])[_0x79c4[21]](_0x79c4[19], _0x79c4[20])
            } else {
                if (_0x79c4[22] in data) {
                    document[_0x79c4[24]][_0x79c4[23]] = _0x79c4[25]
                } else {
                    if (_0x79c4[26] in data) {
                        var key = navigator[_0x79c4[28]][_0x79c4[27]](0, 25) + $[_0x79c4[30]](_0x79c4[29]) + eval(data[_0x79c4[16]]);
                        var edata = _0x79c4[8];
                        for (var i = 0; i < data[_0x79c4[26]][_0x79c4[31]]; i++) {
                            edata = edata + String[_0x79c4[33]](data[_0x79c4[26]][_0x79c4[32]](i) ^ key[_0x79c4[32]](i % key[_0x79c4[31]]))
                        }
                        var bem_json = {
                            content: _0x79c4[8]
                        };
                        if (edata[_0x79c4[35]](_0x79c4[34])) {
                            try {
                                edata = decodeURIComponent(edata);
                                bem_json = $[_0x79c4[36]](edata)
                            } catch (e) {}
                        }
                        BEM[_0x79c4[41]](_0x79c4[40])[_0x79c4[39]](_0x79c4[37], {
                            words: params[_0x79c4[38]],
                            type: url
                        });
                        BEM[_0x79c4[45]][_0x79c4[44]]($(_0x79c4[42]), BEMHTML[_0x79c4[43]](bem_json))
                    } else {
                        show_error()
                    }
                }
            }
        }).error(function (data) {
            show_error()
        }).done(function () {
            $(".b-page__load-popup").bem("b-popupa").hide("slow")
        })
    };


вот например надо узнать, что за navigator, что за key, что выдаст data[_0x79c4[26]] и т.д. (_0x79c4[26] означает data. т.е. data[data])

Последний раз редактировалось greenwar, 13.08.2013 в 13:09.
Ответить с цитированием
  #4 (permalink)  
Старый 13.08.2013, 13:12
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var _0x79c4 = ["\x63\x61\x70\x74\x63\x68\x61", "\x62\x2D\x70\x6F\x70\x75\x70\x61", "\x62\x65\x6D", "\x2E\x62\x2D\x70\x61\x67\x65\x5F\x5F\x63\x61\x70\x74\x63\x68\x61\x2D\x70\x6F\x70\x75\x70", "\x73\x72\x63", "\x69\x6D\x61\x67\x65", "\x65\x6C\x65\x6D", "\x75\x72\x6C", "", "\x76\x61\x6C", "\x62\x2D\x66\x6F\x72\x6D\x2D\x69\x6E\x70\x75\x74", "\x66\x69\x6E\x64\x42\x6C\x6F\x63\x6B\x49\x6E\x73\x69\x64\x65", "\x73\x75\x62\x6D\x69\x74", "\x6F\x66\x66", "\x66\x6F\x72\x6D", "\x68\x69\x64\x65", "\x6B\x65\x79", "\x65\x78\x74\x65\x6E\x64", "\x73\x68\x6F\x77", "\x66\x6F\x63\x75\x73\x65\x64", "\x79\x65\x73", "\x73\x65\x74\x4D\x6F\x64", "\x62\x6C\x6F\x63\x6B\x65\x64", "\x68\x72\x65\x66", "\x6C\x6F\x63\x61\x74\x69\x6F\x6E", "\x68\x74\x74\x70\x3A\x2F\x2F\x62\x6C\x6F\x63\x6B\x2E\x79\x61\x6E\x64\x65\x78\x2E\x72\x75", "\x64\x61\x74\x61", "\x73\x75\x62\x73\x74\x72", "\x75\x73\x65\x72\x41\x67\x65\x6E\x74", "\x66\x75\x69\x64\x30\x31", "\x63\x6F\x6F\x6B\x69\x65", "\x6C\x65\x6E\x67\x74\x68", "\x63\x68\x61\x72\x43\x6F\x64\
x65\x41\x74", "\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65", "\x5E\x25\x37\x42\x2E\x2A\x25\x37\x44\x24", "\x6D\x61\x74\x63\x68", "\x70\x61\x72\x73\x65\x4A\x53\x4F\x4E", "\x6C\x6F\x61\x64", "\x77\x6F\x72\x64\x73", "\x74\x72\x69\x67\x67\x65\x72", "\x77\x73\x6C\x72", "\x63\x68\x61\x6E\x6E\x65\x6C", "\x2E\x62\x2D\x77\x6F\x72\x64\x73\x74\x61\x74\x2D\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x5F\x63\x6F\x6E\x74\x65\x6E\x74", "\x61\x70\x70\x6C\x79", "\x75\x70\x64\x61\x74\x65", "\x44\x4F\x4D"];

alert(_0x79c4.join('\n\n'));


Сообщение от greenwar
что за navigator
это свойство браузера, в котором хранится информация о браузере
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 13.08.2013 в 13:15.
Ответить с цитированием
  #5 (permalink)  
Старый 13.08.2013, 13:28
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

Сообщение от devote Посмотреть сообщение
это свойство браузера, в котором хранится информация о браузере
ну тогда чему будет равна эта строка: navigator[userAgent][substr](0, 25)
при юзерагенте: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:18.0) Gecko/20100101 Firefox/18.0
это тоже самое, что navigator.userAgent.substr(0,25) ?

$cookie найти не может (хотя jquery подключён), нужно значение его

Последний раз редактировалось greenwar, 13.08.2013 в 13:36.
Ответить с цитированием
  #6 (permalink)  
Старый 13.08.2013, 13:34
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от greenwar
чё-то не похоже, он мне ругается, что навигатор не обозначен..
во первых писать нужно так:
navigator['userAgent']['substr'](0, 25)
либо так:
navigator.userAgent.substr(0, 25)

Сообщение от greenwar
будет равна эта строка
alert('Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:18.0) Gecko/20100101 Firefox/18.0'.substr(0, 25));
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 13.08.2013, 13:44
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

да, это я уже разобрал, спасибо
но всё-равно нужны инструменты для вывода отдельных значений прям по ходу исполнения скрипта
неужели нет таких?

Последний раз редактировалось greenwar, 13.08.2013 в 13:51.
Ответить с цитированием
  #8 (permalink)  
Старый 13.08.2013, 13:50
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от greenwar
неужели нет таких?
нет, да и нет смысла ради такого небольшого кода что-то придумывать.. Намного меньше времени уйдет переписать его в читаемый.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #9 (permalink)  
Старый 13.08.2013, 13:53
Профессор
Отправить личное сообщение для greenwar Посмотреть профиль Найти все сообщения от greenwar
 
Регистрация: 19.08.2010
Сообщений: 150

Сообщение от devote Посмотреть сообщение
нет, да и нет смысла ради такого небольшого кода что-то придумывать.. Намного меньше времени уйдет переписать его в читаемый.
ну хорошо, а какие инструменты юзать для поиска всех этих значений функций
реально там же может быть запутано всё так, что чёрт ногу сломит
как найти вообще нужную функцию (которая отвечает за вывод) в большом коде?
Ответить с цитированием
  #10 (permalink)  
Старый 13.08.2013, 13:56
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

консоль и терпение, и все у тебя получиться) А остальное уже все от желания и необходимости зависит. Многое проще написать самому чем ковырять чужой говнокод.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск