[C++ BUILDER] Otvet.Mail.ru

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by 0pTik, 14 Sep 2010.

  1. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Пытаюсь программно ответить на ответ. мейл ру , посылать в пост запросе надо такие данные

    action authaddans
    ch fc43e3cc278ee5692a2057192c59d78b
    qid 45487704
    fab961178 1
    Body да дад а
    source да дад а



    Не понимаю откуда взять fab961178 , пересмотрел все ,нигде не нашел

    Если кто знает , буду благодарен за ответ
     
  2. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    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;
    }
     
  3. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Cпасибо , буду разбираться, если не трудно киньте ссылочку на js
     
  4. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Открываете исходный файл страницы (где форма ответа), и смотрите (функция getAntiSpamFieldNam будет почти что в самом начале файла)
     
  5. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Спасибо
     
  6. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    :D :D
     
  7. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Посидел я вчера подумал и чет не соображаю реально ли обойти
     
  8. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    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;
    }
    (конкретно алгоритм не тестировал, но вроде как работает)
     
    1 person likes this.
  9. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Огромное спасибо )

    Щас отправил пост на мейл , мне в снифаке пришло вот такое ) fbcaf13bf а по вашему алгоритму 1242348 без букв )

    P.S Пошел думать ....
     
    #9 0pTik, 15 Sep 2010
    Last edited: 15 Sep 2010
  10. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Ну а что собственно думать, рандомный жабоскрипт на странице, рандомные поля, без интерпретации не обойтись
     
  11. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    _) Я взял блоки со страницы , записал их в тхт потом отправил пост , увидел в снифаке ту комбинацию, взял выше приведенный код подставил значения , скомпилил и ответ программы был различен от ответа снифера
     
  12. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Перепроверил по разному , по выше приведенному коду не выходит щас буду пересматривать алгоритм
     
  13. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    тут надо самому вычислять i, ii, iii, iiii. Вот в этом вся фишка (но увы - я интерпретаторов не писал)
     
  14. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Зачем повторяться, это уже было в 6-ом посте..
    Я ТС"у сразу сказал что нужен интерпретатор. Самому вычислять не надо - есть OLE компонент ScriptControl, который отлично справится с такими вычислениями. В дельфи устанавливается двумя кликами мыши.