Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 14.01.2012, 19:31   #1
Super Moderator
 Сержант
Аватар для Рэйзор
 
Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(
Регистрация: 20.07.2010
Сообщений: 138
Популярность: 26409
Сказал(а) спасибо: 52
Поблагодарили 567 раз(а) в 198 сообщениях
 
Smile ICQ API

Эта статья посвящена некоторой части WebAPI [Ссылки могут видеть только зарегистрированные пользователи. ]

Вход. Создание сессии. Поиск аккаунтов по любым данным. Добавление аккаунта. Отправка сообщений.

Все запросы работают относительно Web ICQ Client:

Код:
http://c.icq.com/webicq/banias/gb/icq/410/WidgetMain.html
Самое интересное в его работе, что все функции доступны независимо от IP адреса, Cookie. Необходимым условием работы всех функций является наличие aimsid, идентификатора активной сессии.
Проще говоря достаточно залогиниться (программно или через браузер - неважно) и получить данный идентификатор, который имеет вид:
Код:
00S.XXXXXXXXXX.ZZZZZZZZZZ:YYYYYYY
где YYYYYYY - номер ICQ, а 00S (если я правильно понял) кол-во входов в WebIcq, включая текущий. После чего можно с любого IP адреса использовать функции. Например поиск по email, icq, имени и т д.

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

Для отслеживания запросов я использую HTTP Analyzer v6

1. Залогиниться.
Нужно отправить POST запрос по адресу
Код:
https://api.login.icq.net/auth/clientLogin
Refferer=http://c.icq.com/webicq/banias/gb/icq/410/WidgetMain.swf?environment=prod
с параметрами:


devId - неизменный параметр = ic1Fvhd7u8Msuxui
s - номер ICQ
pwd - пароль
cacheflag = 3 - значит, что мы заходим с такими параметрами:


В ответ мы получаем вот такой замечательный xml ответ:


По нему можно определить вошли мы или нет, а также извлечь данные, необходимые для создания сессии.

Из этого нужно взять:
token - длинный ключ (<a>...</a>)
sessionSecret
hostTime

\\\\\\\\\\\\\\\\\\\\\\\\\
При обычной авторизации через браузер, после этого идет бессмысленный, но очень интересный запрос:

Где оказывается, что:
Код:
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://c.icq.com/webicq/icq//WidgetMain.html">here</a>.</p>
\\\\\\\\\\\\\\\\\\\\\\\\\

2. Создание сессии.
Она создается вот таким большим GET запросом:
Код:
http://api.icq.net/aim/startSession?a=%2FwQAAAAAAABJyXZ%2BQf7M7r3OfIp%2BYO8VrG%2BDYL73Axvci1z1c%2F87f8D4eJnNFLPklvzDHkRbrJhNtOQ5YcxkLN1%2BZ9XNYcsGqd5urKfV3PBRiP%2FR7xJkBvSvMuxCMSfeI5N25dnPSXjnqNzYDbEZPKlhkdv9wxmj3Qv6O0WSdVB8T3KIqRbi0frlmuE%3D&assertCaps=0946134E4C7F11D18222444553540000&buildNumber=410&clientName=gromit&clientVersion=v0.1&events=myInfo%2Cpresence%2Cbuddylist%2Ctyping%2Cim%2CsentIM%2CdataIM%2CofflineIM%2CuserAddedToBuddyList%2Clifestream%2Cservice&f=xml&interestCaps=8eec67ce70d041009409a7c1602a5c84&k=ic1Fvhd7u8Msuxui&language=en-us&rawMsg=1&sessionTimeout=60&ts=1326545116&sig_sha256=ftUvAHeXNaFuu3tZPQuvPNSCGg3fyZ3Fl0XNMpAu%2FE0%3D
Давайте разберем его на части в виде параметров.

a - token
assertCaps - неизменный параметр = 0946134E4C7F11D18222444553540000
events - как я подозреваю, это список доступных функций или что-то вроде этого = myInfo,presence,buddylist,typing,im,sentIM,dataIM, offlineIM,userAddedToBuddyList,lifestream,service
interestCaps - тоже неизменный параметр = 8eec67ce70d041009409a7c1602a5c84
k - devID
ts - hostTime
sig_sha256 - сложный хеш. Мне удалось найти в старой документации Aol, как он должен бы формироваться:
" base64_encode[HMAC-SHA256(sessionSecret, pwd)] "

В ответ мы получаем:

где нас интересует aimsid и rnd

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

Рассмотрим пример анализа ответа функции поиска в Delphi, о которой я писал в начале.



Вот запрос:


Ответ приходит не в обычном виде, а в формате: application/x-amf
Поэтому возникают некоторые проблемы с его анализом.

Я написал 2 строчки кода,

чтобы было понятно как выглядит ответ, если попытаться его вывести:


Получить читабельный ответ можно посмотрев ответ в строек в режиме дебага.
1. Ставим брейкпоинт после запроса.
2. Смотрим нашу строку ответа:


3. Копируем в блокнот.
Все читабельное находится между ' ' , а спец. символы вынесены отдельно в виде #XX

И тут видна вся информация о найденных аккаунтах(е): (разбито на отдельные строки)


Теперь уже можно парсить строку и т д.
Искать данная функция может по емэйлу, нику, icq и т д.

Добавление контакта.

Тоже простая функция:
Код:
http://api.icq.net/buddylist/addBuddy?f=amf3&aimsid=004.1697499605.0184270422:62737452&r=1&buddy=898582&group=%D0%9E%D0%B1%D1%89%D0%B8%D0%B5&authorizationMsg=%20&preAuthorized=true
Вот подробно данные гет запроса:


Думаю с ними все понятно.
Вот ответ:


Для того, чтобы расшифровывать все данные нужно немного поэкспериментировать.

Отправка сообщений.



Код:
http://api.icq.net/im/sendIM?f=xml&aimsid=004.1697499605.0184270422:62737452&r=1&t=898582&message=trololo&autoResponse=false&offlineIM=true&comscoreChannel=web_icq_v1


Ответ приходит в нормальном виде.



Я продублировал сообщение через программу:


И оно тут же появилось в WebICQ:


На этом все. Надеюсь, информация оказалась интересной.

P.S
По поводу бана и частоты запросов:
После 10 последовательных запросов достаточно сделать 8с перерыв, дабы избежать блокировки.
Бана как такового нету, есть блокировка на примерно 20-30 секунд.

(C) Z.Рэйзор 2012
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Последний раз редактировалось Рэйзор; 14.01.2012 в 19:45.
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
J-Fobos (22.04.2012), ~Nero~ (14.01.2012)
Старый 20.04.2012, 19:37   #2
Заблокирован
 Разведчик
Аватар для Руслан Палыч
 
Руслан Палыч неизвестен в этих краяхРуслан Палыч неизвестен в этих краяхРуслан Палыч неизвестен в этих краяхРуслан Палыч неизвестен в этих краях
Регистрация: 25.03.2011
Сообщений: 31
Популярность: -340
Сказал(а) спасибо: 1
Поблагодарили 28 раз(а) в 21 сообщениях
 
По умолчанию Re: ICQ API

Как в дельфи отправит https ? запрос!
  Ответить с цитированием
Старый 20.04.2012, 22:00   #3
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: ICQ API

Цитата:
Сообщение от Руслан ПалычПосмотреть сообщение
Как в дельфи отправит https ? запрос!

Тут есть очень много методов. Наиболее часто с защищённым протоколом работают средствами Indy. Более полный ответ вы можете найти в интернете.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 08.05.2012, 21:41   #4
 Разведчик
Аватар для SystemOfADown
 
SystemOfADown никому не известный тип
Регистрация: 08.05.2012
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: ICQ API

Цитата:
Сообщение от Руслан ПалычПосмотреть сообщение
Как в дельфи отправит https ? запрос!

Отправляешь post запросом но на форму кидаешь компонент HandlerSocker из вкладки indy I/O handlers
  Ответить с цитированием
Старый 09.05.2012, 09:47   #5
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: ICQ API

Цитата:
Сообщение от SystemOfADownПосмотреть сообщение
Отправляешь post запросом но на форму кидаешь компонент HandlerSocker из вкладки indy I/O handlers

...и получаешь ошибку из-за отсутствия динамических библиотек OpenSSL...
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 03.07.2012, 20:02   #6
 Разведчик
Аватар для Tip.the.besT
 
Tip.the.besT на правильном путиTip.the.besT на правильном пути
Регистрация: 17.01.2012
Сообщений: 19
Популярность: 126
Сказал(а) спасибо: 8
Поблагодарили 30 раз(а) в 11 сообщениях
Отправить сообщение для Tip.the.besT с помощью ICQ Отправить сообщение для Tip.the.besT с помощью Skype™
 
По умолчанию Re: ICQ API

Для начала, удаляем indy))), берём synapse, после чего кидаем либы синапса в папку с проектом, все без разбора, (так легче), далее добаляем в uses - ssl_openssl. Всё. Все запросы далее будут работать в независимости от того, http или https.

З.Ы. Да простят меня ярые юзеры индейца)
  Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 16:58.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net