Pull to refresh

Интересные совпадения. Часть третья: тётя Ася приехала :)

Reading time3 min
Views5.9K
После прошлого обсуждения интересных находок в Jabber модуле Мобильного Агента, мне сказали о похожей ситуации в ICQ. Ну что же, берем уже установленный инвентарь, качаем дополнительно релиз 1.11 и новую бету 1.16 и читаем.

Итак, применив ту же технику сравнения строк с отладочной информацией к файлу icq_0x2001FAC8.dll от версии 1.11 Агента, можно обнаружить довольно много совпадений :) Дабы не перегружать читателя, выложу лишь несколько наиболее интересных строк — содержащие либо имена функций/аргументов, либо душевные комментарии автора:
000618E8 Ignoring SNAC(x%02X,x%02X) — FAMILYx%02X not implemented chan_02data.c (99)
icq_avatar.c (1234)
00061924 *** Yeehah, avatar login sequence complete icq_avatar.c (1303)
00061A5C Avatar reply broken, trying to do my best. icq_avatar.c (1378)
0006E5A8 *** Yeehah, login sequence complete fam_01service.c (1060)
0006E738 Cannot handle abort messages yet… :( fam_04message.c (534)
fam_04message.c (595)
fam_04message.c (1223)
icq_directmsg.c (233)
0006EE48 ResizeCookieList: realloc failed. cookies.c (63)
0006FD54 Error: Unknown wCommand=0x%x in OFT request oscar_filetransfer.c (790)
0006F424 Uploading of avatar hash failed. fam_13servclist.c (762)

Интересно, что автоматический поиск нашел 165 строк в версии 1.11 и уже 175 в версии 1.15. А вот в недавно вышешей версии 1.16 помимо чистки логов Jabber модуля также были удалены практически все найденые пересечения с отладочными строками в ICQ! Кроме одного :)
0006EFE4 Uploading of avatar hash failed. fam_13servclist.c (762)

Для желающих привожу полные списки строк:

P.S. А тем временем мы посмотрели в XML консоли траффик версии 1.16. Мирандовую ноду из капсов удалили, причем радикально, методом удаления необходимого по ХЕР-115 аттрибута node — похоже человек действительно не понимает зачем это все надо и как оно работает…

<presence>
   <priority>5</priority>
   <c xmlns='http://jabber.org/protocol/caps' ver='1.0'/>
   <status>Custom status</status>
</presence>


Один из разработчиков мирандового jabber-плагина даже предложил, при необхдимости написать статью с детальным описанием протокола XEP-115: Entity Capabilities на русском.

P.P.S. Один добрый человек отснифал трафик Мобильного Агента 1.15 и выявил интересную закономерность. При запуске идет запрос обновления:

GET /agent_stat?a=symbian-v3&b=MobileAgent%20v1.15%20BETA&c=unknown&d=0000000000&e=0000000000&f=2&g=00000000000000000000000000000000&h=0&j=1&k=6&m=lang_ru.txt&n=1&o=1&p=0&q=00000000000000000000000000000000&r=0&s=320&t=240&u=0 HTTP/1.1
User-Agent: mmrim/1.0
Host: mobile.mail.ru

HTTP/1.1 200 OK
Server: nginx/0.7.10
Date: Sat, 07 Feb 2009 00:00:00 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive

6a
MobileAgent v1.11|default|001|unknow|2|http://my.agent.mail.ru/mobile/tree30/SymbianOS9.1/MobileAgent.SIS|
0

В запросе передаётся большое количество данных, начиная от разрешения экрана и версии ОС и заканчивая уникальными идентификаторами, которые в дампе закрыты нулями. После получения ответа с двойкой, приложение трясёт экраном на несколько пикселей вправо-влево порядка 2-4 секунд и выходит.

Если надо крашить клиент, сервер отправляет двойку после unknow, если клиент крашить не надо — отправляет тройку. При этом, если заблокировать в фаерволле доступ к mobile.mail.ru, то этот страшный критический баг резко пропадает и всё начинает работать нормально без тряски

И, как обычно: мы никого ни в чем не обвиняем, просто публикуем интересную информацию из общедоступных источников.
Tags:
Hubs:
Total votes 169: ↑155 and ↓14+141
Comments113

Articles