13.08.2013, 12:18
|
Профессор
|
|
Регистрация: 19.08.2010
Сообщений: 150
|
|
ДЕобфускация
добрый день
какими инструментами можно воспользоваться, чтобы в запутанном коде видеть результат работы указанной функции, и чтобы значение любой переменной можно было вывести?
когда я вручную пытаюсь, мне обработчик пишет - эта переменная неопределена, та функция не обозначена, тут не так, там не эдак.. как этот хаос разобрать?
|
|
13.08.2013, 12:23
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
greenwar,
Пример куска кода ?
|
|
13.08.2013, 13:05
|
Профессор
|
|
Регистрация: 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.
|
|
13.08.2013, 13:12
|
что-то знаю
|
|
Регистрация: 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
|
это свойство браузера, в котором хранится информация о браузере
Последний раз редактировалось devote, 13.08.2013 в 13:15.
|
|
13.08.2013, 13:28
|
Профессор
|
|
Регистрация: 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.
|
|
13.08.2013, 13:34
|
что-то знаю
|
|
Регистрация: 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));
|
|
13.08.2013, 13:44
|
Профессор
|
|
Регистрация: 19.08.2010
Сообщений: 150
|
|
да, это я уже разобрал, спасибо
но всё-равно нужны инструменты для вывода отдельных значений прям по ходу исполнения скрипта
неужели нет таких?
Последний раз редактировалось greenwar, 13.08.2013 в 13:51.
|
|
13.08.2013, 13:50
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от greenwar
|
неужели нет таких?
|
нет, да и нет смысла ради такого небольшого кода что-то придумывать.. Намного меньше времени уйдет переписать его в читаемый.
|
|
13.08.2013, 13:53
|
Профессор
|
|
Регистрация: 19.08.2010
Сообщений: 150
|
|
Сообщение от devote
|
нет, да и нет смысла ради такого небольшого кода что-то придумывать.. Намного меньше времени уйдет переписать его в читаемый.
|
ну хорошо, а какие инструменты юзать для поиска всех этих значений функций
реально там же может быть запутано всё так, что чёрт ногу сломит
как найти вообще нужную функцию (которая отвечает за вывод) в большом коде?
|
|
13.08.2013, 13:56
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
консоль и терпение, и все у тебя получиться) А остальное уже все от желания и необходимости зависит. Многое проще написать самому чем ковырять чужой говнокод.
|
|
|
|