Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2013, 15:43   #21
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Где "X-" в idhttp нету в объект инспекторе этих строк а если в код просто вписывать то он красным выделяет и не компилирует проект.
nefakt вне форума Ответить с цитированием
Старый 16.03.2013, 16:03   #22
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

А их и не должно быть.
Вот так я добавил строчку "X-Auth: 123" в header:
Код:
IdHTTP1.Request.CustomHeaders.AddValue('X-Auth', '123');
Цитата:
Сообщение от bakanaev Посмотреть сообщение
nefakt, учитывай что данные в хедере меняться могут.
Ага, так что написание бота, не такая уж простая задача.

Из жизни: Было забавно писать бота для игры, побайтово составляя и посылая пакеты, предварительно пытаясь понять, какой байт за что отвечает. Почти дописал, а игра закрылась
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 16.03.2013 в 16:21.
BDA вне форума Ответить с цитированием
Старый 16.03.2013, 16:06   #23
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

nefakt, учитывай что данные в хедере меняться могут.
bakanaev вне форума Ответить с цитированием
Старый 16.03.2013, 16:23   #24
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Добавил параметры вот код
Код:
procedure TForm2.sButton1Click(Sender: TObject);
var
data:TStringStream;
html:string;
begin
data:=TStringStream.Create('"{"calls":[{"name":"bossHit","args":{"ownerId":"96950594","id":16,"offerId":"16150666"},"ident":"body"}],"session":null}"');
IdHTTP1.Request.ContentType:='application/json; charset=UTF-8';
IdHTTP1.Request.CustomHeaders.AddValue('X-Requested-With', 'XMLHttpRequest');
IdHTTP1.Request.CustomHeaders.AddValue('X-Auth-Network-Ident', 'vkontakte');
IdHTTP1.Request.CustomHeaders.AddValue('Request-Line', 'POST /rpc/ HTTP/1.1');
IdHTTP1.Request.CustomHeaders.AddValue('Origin', 'http://cs6114.vk.me');
IdHTTP1.Request.CustomHeaders.AddValue('X-Auth-User-Id', '96950594');
IdHTTP1.Request.CustomHeaders.AddValue('X-Auth-Signature', '891a0b5b49dc7e3031c96370be444824');
IdHTTP1.Request.CustomHeaders.AddValue('X-Auth-Application-Id', '3021522');
IdHTTP1.Request.CustomHeaders.AddValue('X-Server-Time', '1363432811.6585');
IdHTTP1.Request.CustomHeaders.AddValue('X-Env-Libary-Version', '1363263196.463456');
IdHTTP1.Request.CustomHeaders.AddValue('X-Request-Id', '10');
IdHTTP1.Request.CustomHeaders.AddValue('X-Auth-session-Id', '0mjr3gn1qj62on');
html:=IdHTTP1.POST('http://vkontakte.zombie.progrestar.net/rpc/',data);
Showmessage(html);
data.Free;
end;
При нажатии кнопки выходит ошибка Invalid signature
а если поменять это
Код:
IdHTTP1.Request.CustomHeaders.AddValue('Request-Line', 'POST /rpc/ HTTP/1.1');
на это
Код:
IdHTTP1.Request.CustomHeaders.AddValue('(Request-Line)', 'POST /rpc/ HTTP/1.1');
Как в Header написано то появляется ошибка в самом Delphi "HTTP/1.1 400 BAD_REQUEST" если нажать Continue на ошибки то появляется вторая "Socket Error # 10053" Software caused connection abort.
nefakt вне форума Ответить с цитированием
Старый 16.03.2013, 17:09   #25
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Как уже отметил bakanaev, данные могут меняться. То есть просто добавить те же самые может не помочь. Сигнатура может вычисляться от изменяемых параметров. Также не надо бездумно добавлять все строчки в CustomHeaders. Этот Request-Line не нужно добавлять вообще (подсказывает внутренний голос).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 16.03.2013, 17:11   #26
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

nefakt, еще раз
Цитата:
учитывай что данные в хедере меняться могут.
и
Цитата:
"{"calls":[{"name":"bossHit","args":{"ownerId" :"96950594","id":16,"offerId":"1615 0666"},"ident":"body"}],"session":null}"
Я уверен на 90% что тут тоже данные меняются.
bakanaev вне форума Ответить с цитированием
Старый 16.03.2013, 18:01   #27
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Код:
"{"calls":[{"name":"bossHit","args":{"ownerId" :"96950594","id":16,"offerId":"1615 0666"},"ident":"body"}],"session":null}"
Эти данные не меняются я проверял если ходить на одного и того же босса то данные остаются если идти на другова то они меняются. А на счет данных как можно сделать что бы они сами автоматически менялись на новые? может нужно ещё GET запрос писать что бы от сервера в программу параметры шли и они обновлялись автоматически?!
nefakt вне форума Ответить с цитированием
Старый 16.03.2013, 18:25   #28
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Цитата:
что бы они сами автоматически менялись на новые?
Ничего вот так просто само автоматически не изменится (то есть 1 гет запроса может быть мало).
Ответ Вам может дать только человек, который уже писал бота/похожую программу для ЭТОЙ игры. Неплохо бы иметь исходный код игры (полученный хотя бы реверс-инжинирингом). Например, в одной игре пакет "подписывался" md5-хешем от нескольких параметров с солью (sign-code = md5("The Matrix has you..." + POST.data + server-method + userSocialId + userSocialAuthKey)).

Предположение:
Неизменные параметры: X-Requested-With, X-Auth-Network-Ident, X-Auth-User-Id (фиксирован для игрока), X-Auth-Application-Id, X-Request-Id (для каждого вида запроса фиксирован)
Изменяемые: X-Server-Time, X-Env-Libary-Version (не быстро, но меняется), X-Auth-session-Id, X-Auth-Signature (скорее всего, меняется)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 16.03.2013, 23:08   #29
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Получается без исходника или человека который уже писал , мне написать не получится. Попробую тогда пока для поднятия своего уровня что-нибудь другое написать. Спасибо всем за помощь.
nefakt вне форума Ответить с цитированием
Старый 17.03.2013, 06:52   #30
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Получается без исходника или человека который уже писал , мне написать не получится.
Не верно
Цитата:
Попробую тогда пока для поднятия своего уровня что-нибудь другое написать. Спасибо всем за помощь.
А вот это правильно. Попробуй реализовать авторизацию в www.odnoklassniki.ru, там как раз есть значения которые меняются
bakanaev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация Pearl777 Работа с сетью в Delphi 13 29.03.2013 00:32
Авторизация в VK :D bakanaev Работа с сетью в Delphi 3 04.12.2012 11:16
Авторизация trad C++ Builder 3 13.01.2011 01:27
Обычная авторизация или авторизация на уровне браузера? calugin Безопасность, Шифрование 0 13.01.2011 00:34
авторизация fAtliNg Работа с сетью в Delphi 6 14.08.2010 20:14