буквоед

Рейтинг
1
Регистрация
10.08.2013

ВСЁ! я его победил

теперь и на перле

всем спасибо

Elbran отдельное спасибо :)

буквоед:
буду пробовать сегодня

чё-то всё-равно не выходит каменный цветок..

ну а ключ то финальный так выглядит?

Mozilla/5.0 (X11; Ubuntu;511bc37578f5ccbe.xifl3zYZV6cis86A5fuN2-qB7O8y-5hV_shcn8-jZ-3WW5b2LX84NsAqJjS1Fp3O8nfMV_uZUBs0VBIjixfx__ZuCYB5y6QIRM4o8FiLDgGKCHNS8V8U_O7Jsb8reOkyecd19a54e92025f401165281021767330482

и это я на перле делаю, а если пытаться использовать тот пхп-скрипт, то на этом месте

$l = $obj->data;

он кричит:

PHP Notice: Trying to get property of non-object in script.php

кормлю его данными через файл так:

$filename = 'JSON.src';
$handle = fopen($filename,'r');
$answer = fread($handle, filesize($filename));
fclose($handle);

в JSON.src всё между {}, включая их самих

и data там есть:

{"data":"hX8L^^\u0002@[ZUN\\}\u0003
ukrdev:
Я говорил о смещении. $h[0] отдает один байт данных из строки, в многобайтовых кодировках это не работает, но это уже не относится к теме, так субботнее вечернее занудство после тяжелого турдового дня.

если у пхп всё в массивах, то пофиг ему на байты, он именно символ вернёт

Elbran:

не правильно
\u0002 - это 1 символ, записанный в формате уникода, или как там его

вот это - и превращяет его в реальный символ из \u0002
$obj = json_decode($answer);
$l = $obj->data;

т.е. пробегаться гужно уже по $l

я знал, я знал ☝

долбаный пых 😡

буду пробовать сегодня

ukrdev:
Кхм... очевидно то что у тебя лежит в cookie под именем fuid01? не?

очевидно, но декодирование то не работает :(

я надеялся, что fuid01 это переменная, а $cookie её опять считает, навроде ключа

как я делаю:

высчитываю кей (правильность проверял несколько раз в самом JS - совпадает с результатом моего кода)

далее, беру кусок (сабстринг) 25 символов от user-agent, приклеиваю куку, приклеиваю посчитанный кей = финальный ключ

потом беру сами данные, которые начинаются с hX8L^^\u0002@[ZUN\ (без всяких кавычек и скобок, они в таком виде в переменной лежат) и заканчиваются просто очередным набором символов

пробегаю по этим данным побайтово, применяя ту самую строку и склеиваю всё это в одну строку

потом на эту строку делаю uri_unescape

кстати, там к этому моменту строка уже должна быть читаемой, не? только с %20 вместо отдельных символов и кириллицы

в результате получаю набор символов с большим кол-вом пробелов :\

кстати, тот код на php тоже самое выдаёт

ох уж этот пых

а что таки должно выдать $cookie(fuid01)?

Elbran:
а это не подходит?
/ru/forum/comment/12029595

$obj = json_decode($answer);
$l = $obj->data;
$h = substr($useragent, 0, 25) . $fuid01 . 'I keep watch over you ;)';
$str = "";
for ($g = 0; $g < strlen($l); $g++){
$str.= chr(ord($l[$g]) ^ ord($h[$g % strlen($h)]));
}

тут непонятно, как у тебя $h стал массивом, когда это просто строка?

если не путаю, в пыхе [] используются в массивах и это:

$h[$g % strlen($h)]

таки массив

и ещё, json_decode происходит ДО декодирования непосредственно тела, где этот JSON содержится. зачем?

переведите на ПХП или перл плиз:

for (var i = 0; i < data['data'].length; i++) {

edata = edata + String.fromCharCode(data['data'].charCodeAt(i) ^ key.charCodeAt(i % key.length))

}

Elbran:
хе-хех.
Яндекс стал IP заносить в базу, и блокировать доступ к WordStat'у.

интерестно, на долго, или навсегда 😂

прикидываю уже, какая текучка по смене IP подет ....

или кто-то просто настучал :)

по крайней мере один IP точно заблокировали, с других - выдает статистику, не жжужит.

надо бы затаиться, и потом, смешаться с толпой, так, незаметненько его потрошить

и раньше блочил

ukrdev:
Если ты не знаешь что такое $cookie(fuid01), значит это ($[cookie](fuid01) || "") яндекс добавил специально для тебя :)

я знаю, что fuid01 это кука, я вордстат паршу уже не 1 год

меня интересовал результат с $cookie

ты утверждаешь, что это пустышка?

Bukvarix:
alex-nn, вот как декодировать ответ:

2. Подсчитать ключ - посмотреть файл _common.ru.js - найти что-то похожее на
var _0x840cx7=navigator[_0xa032[51]][_0xa032[50]](0,25)+($[_0xa032[53]](_0xa032[52])||_0xa032[36])+eval(_0x840cx5[_0xa032[40]]);
вот тут к примеру eval(_0x840cx5[_0xa032[40]]) - это вычисление key из пункта 1
там все может меняться, нужно искать navigator[ и потом глазками выходить на нужный кусок.

хмм, они опять его изменили (по-сравнению с 13м числом)

добавили в массив _0xa032 новых значений (было 46, теперь 72)

закодировали слова с помощью новых _0x840cx7, _0x840cx2 и т.д.

в этой строке:

var key = navigator[userAgent][substr](0, 25) + ($[cookie](fuid01) || "") + eval(data[key]);

раньше не было || ""

кстати, а $cookie(fuid01) чему равно?

ну и конечно же бонусы 🍿

_0x840cx1 url

_0x840cx2 params

_0x840cx3 show_error

_0x840cx4 error_popup

_0x840cx5 data

_0x840cx6 captcha_popup

_0x840cx7 key

_0x840cx8 edata

_0x840cx9 i

_0x840cxa bem_json

массив _0xa032:

0 WSLR, 1 words, 2 val, 3 b-form-input, 4 bem, 5 .b-search__input, 6 with-regions, 7 hasClass, 8 input:radio:checked, 9 find, 10 type, 11 elem, 12 b-search, 13 .b-search, 14 regions, 15 ids, 16 b-region-select, 17 .b-search__region-select, 18 slow, 19 show, 20 b-popupa, 21 .b-page__load-popup, 22 .b-page__error-popup, 23 click, 24 un, 25 hide, 26 on, 27 b-form-button, 28 findBlockInside, 29 done, 30 error, 31 captcha, 32 .b-page__captcha-popup, 33 src, 34 image, 35 url, 36 , 37 submit, 38 off, 39 form, 40 key, 41 extend, 42 focused, 43 yes, 44 setMod, 45 blocked, 46 href, 47 location, 48 http://block.yandex.ru, 49 data, 50 substr, 51 userAgent, 52 fuid01, 53 cookie, 54 length, 55 charCodeAt, 56 fromCharCode, 57 ^%7B.*%7D$, 58 match, 59 parseJSON, 60 load, 61 trigger, 62 wslr, 63 channel, 64 .b-wordstat-content__content, 65 apply, 66 update, 67 DOM, 68 success, 69 POST, 70 /stat/, 71 json, 72 ajax

if (data in data) {

var key = navigator[userAgent][substr](0, 25) + ($[cookie](fuid01) || "") + eval(data[key]);

var edata = "";

for (var i = 0; i < data[data][length]; i++) {

edata = edata + String[fromCharCode](data[data][charCodeAt](i) ^ key[charCodeAt](i % key[length]))

}

var bem_json = {

content: ""

};

if (edata[match]("^%7B.*%7D$")) {

try {

edata = decodeURIComponent(edata);

bem_json = $[parseJSON](edata)

} catch (e) {}

}

12
Всего: 17