Пытаюсь программно ответить на ответ. мейл ру , посылать в пост запросе надо такие данные action authaddans ch fc43e3cc278ee5692a2057192c59d78b qid 45487704 fab961178 1 Body да дад а source да дад а Не понимаю откуда взять fab961178 , пересмотрел все ,нигде не нашел Если кто знает , буду благодарен за ответ
Js говорит: Code: function getAntiSpamFieldName() { var iii = 4; iii = Math.floor(iii / 17); iii = iii * 12; iii = iii + 23; iii = iii - 13; var ii = 4; ii = ii * 11; ii = ii - 11; ii = Math.floor(ii / 23); ii = ii * 23; ii = Math.floor(ii / 6); ii = ii + 16; ii = ii + 9; ii = ii - 28; var iiii = 4; iiii = iiii - 23; iiii = iiii + 4; iiii = iiii - 15; iiii = Math.floor(iiii / 9); iiii = iiii * 7; iiii = Math.floor(iiii / 21); iiii = iiii + 16; var i = 4; i = i * 5; i = Math.floor(i / 22); i = i * 23; i = i + 11; i = i + 1; var arr = new Array(); var div = document.getElementById('antispam'); var childList = div.childNodes; var re = new RegExp("(\\d{1,2})(\\w\\w)"); var retval = ''; for(var m=0; m < childList.length; m++){ if (childList[m].nodeType == 8){ value = childList[m].nodeValue; var rem = re.exec(value); arr[RegExp.$1] = RegExp.$2; } } var iarr = new Array(i, ii, iii, iiii); for (m=0; m<4; m++){retval+=arr[iarr[m]]}; return retval; }
Открываете исходный файл страницы (где форма ответа), и смотрите (функция getAntiSpamFieldNam будет почти что в самом начале файла)
fab961178 Разбираемся... f - добавляется к ab961178 (а ab961178 -> генерированое значение) ab961178 - генерация происходит так: берутся значения: Code: <!-- block04f --><!-- block171 --><!-- block229 --><!-- block35d --><!-- block4d7 --><!-- block5c5 --><!-- block685 --><!-- block79b --><!-- block8fa --><!-- block99a --><!-- block104f --><!-- block11fc --><!-- block12fe --><!-- block135c --><!-- block14e2 --><!-- block15a3 --> (а именно: block04f, block171 и т.д.) Далее, block04f - то что красное - это "номер ячейки" массива в которую положится значение 4f (т.е. два последних символа) Следовательно нужно сложить в массив (который состоит из 16 ячеек) - последнии два символа каждого слова которые начинаются со слова block А потом сложить номера массива: 12, 0, 10, 14 И получится генерированное слово Алгоритм (написано в visual studio): Code: char res[32]; int getcode(char *arrz[]) { int i = 12, ii = 0, iii = 10, iiii = 14; res[0] = arrz[i][7]; res[1] = arrz[i][8]; res[2] = arrz[ii][6]; res[3] = arrz[ii][7]; res[4] = arrz[iii][7]; res[5] = arrz[iii][8]; res[6] = arrz[iiii][7]; res[7] = arrz[iiii][8]; res[8] = '\0'; return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char *arrz[]={"block04f", "block171", "block229", "block35d", "block4d7", "block5c5", "block685", "block79b", "block8fa", "block99a", "block104f", "block11fc", "block12fe", "block135c", "block14e2", "block15a3"}; getcode(arrz); return 0; } (конкретно алгоритм не тестировал, но вроде как работает)
Огромное спасибо ) Щас отправил пост на мейл , мне в снифаке пришло вот такое ) fbcaf13bf а по вашему алгоритму 1242348 без букв ) P.S Пошел думать ....
Ну а что собственно думать, рандомный жабоскрипт на странице, рандомные поля, без интерпретации не обойтись
_) Я взял блоки со страницы , записал их в тхт потом отправил пост , увидел в снифаке ту комбинацию, взял выше приведенный код подставил значения , скомпилил и ответ программы был различен от ответа снифера
тут надо самому вычислять i, ii, iii, iiii. Вот в этом вся фишка (но увы - я интерпретаторов не писал)
Зачем повторяться, это уже было в 6-ом посте.. Я ТС"у сразу сказал что нужен интерпретатор. Самому вычислять не надо - есть OLE компонент ScriptControl, который отлично справится с такими вычислениями. В дельфи устанавливается двумя кликами мыши.