Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/41: Рейтинг темы: голосов - 41, средняя оценка - 4.93
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37

Отправка HTTP запроса

01.11.2012, 19:31. Показов 8219. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите разобраться с проблемой.
Я пишу бота для игры heroeswm.ru
Суть бота такова, что нужно он устраивает персонажа на работу. Пример страницы:
http://www.heroeswm.ru/object-info.php?id=5
Так вот, на этой странице есть капча и поле ввода с кнопкой сделанные на флеш. Капчу я выкачиваю и загоняю в капчабот. Затем уже посылаю код капчи и её ид на сервер.
Вот пример запроса:
Код:


GET /object-info.php?id=5&code=92msd6&code_id=d1840a 30cdd09c76aacae9ed018026f4&pl_id=4023746 &rand1=0.24850&rand2=210.88028 HTTP/1.1
Host: www.heroeswm.ru
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/17.0 Firefox/17.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: keep-alive
Referer: http://www.heroeswm.ru/object-info.php?id=5
Cookie: l_obj_c=d1840a30cdd09c76aacae9ed018026f4 ; l_obj=5; PHPSESSID=4075f6ee4bc016de6b5f8ffaba8fb8 59; duration=32304; NSC_ifspftxn-209.200.152.144-80=ffffffffaeef3b6545525d5f4f58455e445a4 a423660; pl_id=4023746; sid=db109656beb49a2e448572a0b97bd8fb
Но в итоге я получаю ту же самую страницу:
http://www.heroeswm.ru/object-info.php?id=5

Меня настораживает эта флеш форма... Что-то мне кажется, что тут не все так просто... Смотрел в сниффере что отправляется серверу, у меня точно так же. Но в ответ таже самая страница... Что может быть?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.11.2012, 19:31
Ответы с готовыми решениями:

Отправка http запроса и получение ответа
я понимаю что есть дофига тем про это, я честно гуглила и искала, но находила в основном код без пояснений с непонятными мне функциями,...

Помогите отладеть код на С++ отправка запроса post по http
вот код клиента на С++ #include <windows.h> #include <windowsx.h> #include <commctrl.h> #include <string.h> #include...

Отправка файла (HTTP+Winsock)
Добрый вечер. Опять столкнулся с проблемой, которую без вашей помощи не разрешить. Суть дела - пишу программу для загрузки графических...

46
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37
14.11.2012, 18:02  [ТС]
Студворк — интернет-сервис помощи студентам
code_id приходит в куках после запроса object-info.php?id=...
pl_id тоже в куках, но это после авторизации приходит.
А последнее это тупо рандом какой-то...
И еще, ты указываешь User-Agent:? Лучше эмулировать браузер... Может поэтому возникают проблемы с авторизацией?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.11.2012, 18:11
Цитата Сообщение от bananasus Посмотреть сообщение
И еще, ты указываешь User-Agent
Указываю...
Цитата Сообщение от bananasus Посмотреть сообщение
code_id приходит в куках после запроса object-info.php?id=...
pl_id тоже в куках, но это после авторизации приходит.
Эти значения я нашел - только не в куках, а html - коде.

Как я понимаю эти значения использует флеш кнопки, который генерит GET

Еще не пробывал, но вероятно
А последнее это тупо рандом какой-то...
Не просто рандом ... либо вообще не рандом ... и на основе их сервер понимает что это бот генерит, а не флеш.
В таком случае возможно придется пытаться декомпилировать флеш файл чтоб узнать что там за алгоритм.

Позже проверю...
0
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37
14.11.2012, 19:17  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Эти значения я нашел - только не в куках, а html - коде.
Да, в коде они тоже присутствуют.
Цитата Сообщение от Avazart Посмотреть сообщение
Не просто рандом ... либо вообще не рандом ... и на основе их сервер понимает что это бот генерит, а не флеш.
В таком случае возможно придется пытаться декомпилировать флеш файл чтоб узнать что там за алгоритм.
Да, было у меня такое предположение, что это не просто рандом...
Меня что больше всего смущает, что у самой формы стоит метод POST и есть 3 скрытых поля:
HTML5
1
<input type="hidden" autocomplete="off" name="code" size="4"></input><input type="hidden" name="id" value="5"></input><input type="hidden" name="id2" value="5"></input>
Вопрос, зачем POST если отправляется только GET?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.11.2012, 19:21
Ну это, думаю, не имеет значение так как GET делает скрипт

http://www.heroeswm.ru/wffiles... f9aa8c6960
0
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37
15.11.2012, 00:37  [ТС]
Глянул я этот swf... Походу тут реально не просто рандом(
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.11.2012, 01:23
Глянул я этот swf... Походу тут реально не просто рандом(
Ну так а чем глянул ? Декомпилировал ?
0
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37
15.11.2012, 01:55  [ТС]
Да, Sothink SWF Decompiler
Кода там дохерища!
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.11.2012, 06:04
Ну то что декомпилировал уже успех, но то что кода много настораживает ...

Вообще стоит разбирать код и добиваться что того что бы ваш код С++ при одинаковых входных данных генерировал тот же запрос ( поля ) что и скрипт

Добавлено через 1 час 39 минут
Смотрю на код и вижу только привязку к таймеру...
ActionScript 3
1
2
3
4
5
6
7
8
getURL(
dom + "object_do.php?id=" + _root.id + 
"&code="     + _root.code + 
"&code_id=" + _root.code_id + 
"&pl_id="     + _root.pl_id + 
"&rand1=    0.5" + tm + 
"&rand2=" + (mu - md) + "." + (getTimer() - t3), "_parent"
);
mu и md это время нажатия отпускания кнопки.

То ли все очень хитро, то ли это действительно только рандом, а в коде попытки его сделать "более случайным".
0
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37
15.11.2012, 20:22  [ТС]
Вообще если подумать, то рандом тут нафик не нужен, так как есть code, code_id, pl_id. А они в свою очередь и так уник все. В этом ранде и так смысла нету, а их целых 2. Причем еще какие-то алгоритмы для повышения рандомизации. Тут по-любому что-то не так.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.11.2012, 20:23
Как я понимаю рандом нужен как раз для запроса каптчи ( code, code_id, pl_id ) дабы нельзя было предугадать следующую каптчу
0
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37
15.11.2012, 20:26  [ТС]
Так ты вообще пробовал слать этот запрос?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.11.2012, 20:29
Пока нет...

Нужно состряпать парсер чтоб вытащить значения параметров...

Как альтернативный подход - выполнять флеш в каком нибудь контейнере ( CppBrowser -е или Fash ) а Get перехватывать и самому отсылать
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.11.2012, 20:47
code_id и есть sid в куках ?
Миниатюры
Отправка HTTP запроса  
0
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37
15.11.2012, 22:42  [ТС]
нет, code_id это l_obj_c
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.11.2012, 23:48
блин...
Ша перепишу.. попробую заного...

Добавлено через 53 минуты
От блин не успел проверить, сервер опять стал отшивать Ошибка#10054

Но буквально до этого я слал sid вместо l_obj_c и сревер отвечал OK и слал в куках новый code_id типа я не правильно заполнил каптчу.

Завтра попытаюсь проверить если будет пускать....
0
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37
16.11.2012, 00:22  [ТС]
да, что-то он сегодня глючит)
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.11.2012, 04:59
Думал там бан по Ip а вроде банит по юзер-агенту, сменил перестал рубать.

Вообще у меня при отправки этого GET возвращает ту же страницу - т.е. каптча не меняется даже и на вид в браузер та же страница, да и параметры те же...

Хотя по идее должна быть страничка с надписью "Введен неправильный код" ( как минимум )
1
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 37
16.11.2012, 13:24  [ТС]
Вот, та же шняга и у меня!) Не можем же мы вдвоем тупить где-то) Тут полюбому что-то не просто так...
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.11.2012, 19:16
Ну пока месть грешу на куки...
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.11.2012, 05:38
Цитата Сообщение от bananasus Посмотреть сообщение
Не можем же мы вдвоем тупить где-то) Тут полюбому что-то не просто так...
Гы тупим и походу из-за незнания протокола HTTP
GET

Используется для запроса содержимого указанного ресурса. С помощью метода GET можно также начать какой-либо процесс. В этом случае в тело ответного сообщения следует включить информацию о ходе выполнения процесса.

Клиент может передавать параметры выполнения запроса в URI целевого ресурса после символа «?»:
GET /path/resource?param1=value1&param2=value2 HTTP/1.1

Согласно стандарту HTTP, запросы типа GET считаются идемпотентными
http://ru.wikipedia.org/wiki/HTTP#GET

Как я понял GET не изменяет страницы ... надо читать про "хитрый" GET !

Сегодня сделал такой эксперимент с браузером.
Просмотрел код страницы и взял параметры :
HTML5
1
params=3429067|6|ff544e3bd1987779275562ae356ea300|
Оформил соответствующее запрос в строку, а значение рандов взял из другого запроса, "добытые" при анализе раньше...

Вбил в строку навигации браузера ( в открытой странице игры соответствующей "принятию на работу" ) и нажал Enter и в общем сработало !

Что в принципе подтверждает догадку что ранды не связаны с другими параметрами.

Добавлено через 17 минут
Думаю суть еще последнем POST которому предается js

Code
1
2
3
4
   15         False    + 133,225            0,625 s      GET     200     20,06 K   text/html                      http://www.heroeswm.ru/object_do.php?id=6&code=2YQSE6&code_id=d0ca5605889b2cb643ec572e87aa87da&pl_id=3429067&rand1=0.67916&rand2=94.33302               
   16         False    + 134,411            0,063 s      GET     304     239       application/x-javascript       http://cdncache3-a.akamaihd.net/loaders/1032/l.js?aoi=1311798366&pid=1032&zoneid=62862                                                                  
   17         False    + 134,738            0,048 s      GET     304     237       application/javascript         http://cdncache3-a.akamaihd.net/js/5727e2d6773756f6275686/r.js                                                                                          
   18         False    + 134,925            0,157 s      POST    200     370       text/javascript                http://i.trkjmp.com/kwd?c=Ojo6d3d3Lmhlcm9lc3dtLnJ1OnotMTAzMi02Mjg2Mg%3D%3D&cb=_GPL.items.a652c.displayKeywords
15 - наш "хитрый" GET
16,17 - js но они не принимаются так как без изменений
18 - POST предающий binary - контент
Code
1
2
c:Ojo6d3d3Lmhlcm9lc3dtLnJ1OnotMTAzMi02Mjg2Mg==
cb:_GPL.items.a652c.displayKeywords
и принимающий
JavaScript
1
_GPL.items.a652c.displayKeywords({"results":[]})
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.11.2012, 05:38
Помогаю со студенческими работами здесь

Отправка get запроса cURL
Необходимо оптравить get запрос и получить JSON #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string&gt; #include...

Отправка POST запроса
Помогите начинающему, конечно ноги наперёд забрасываю... получил основы С++ начал API вкуривать. Давно жила идейка для программки. Пока...

Отправка POST-запроса
Приветствую всех, товарищи! Знакомый, зная что я учу С++ попросил сделать следующее: можешь накидать простенькую программульку на плюсах...

Посыл http запроса get при наличии сертификата самоподписанного ssl
Написал прогу с помощью WinInet и запросы GET для самоподписанных страниц не работают. Для нормально подписанных страниц запросы по HTTPS...

Отправка HTTP запроса
Я так понимаю, для того что бы из приложения произвести какие либо действия на сайте, необходимо отправить POST запрос!? Если кого не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru