Прочитав топик о подозрительности реализации протокола Jabber в приложении Mail.ru Агент, а также комментарии Swappp и naum о присутствующих в модуле интересных строках, я решил проверить, что же там внутри.
Потратив пол часа на поиск утилит и закачку бинарников Mail.ru Агента, я получил листинг со списком некоторых строк, присутствующих внутри файла JABBER_0X2001FACA.DLL. Для удобства читателя, незнакомого с кодом jabber модуля из Miranda IM, приведу сопоставления найденых строк с нашими исходниками:
Как мы можем видеть, почти все строки (кроме последней) являются отладочной информацией и входят либо в функции для работы с XML, либо в процесс подключения к XMPP-сети. Могу заметить, что остальные части джаббера сильно завязаны на интерфейс windows и/или архитектуру самой миранды.
Также, может быть интересен факт использования в XML потоке одинарных кавычек ['], который имел место и в ветке 0.7 jabber модуля из миранды (в ветке 0.8 используются двойные кавычки ["], и они субъективно более популярны).
Я не являюсь знатоком внутренностей бинарных модулей для SymbianOS, но в списке строк наткнулся также на имена классов, использующихся в нашем коде для поддержки разных методов логина. Судя по наличию аналогичных строк с «классообразным» содержимым и числом в начале, такие строки генерирутся для большинства классов. Обращаю внимание на непоследовательность использования регистра букв в аббревиатурах MD5 и NTLM.
Кстати, интересно, насколько уместна NTLM авторизация на мобильном телефоне :) (Update: говорят уместна и при желании хэш можно вычислить вручную, ну да не в этом суть)
В контексте увиденного интересно звучит комментарий по поводу «да что же можно взять из Миранды»
Тут упомянуто именно два находящихся под вопросом компонента протокола и всем известная модульная архитектура Miranda IM. Об остальных частях протокола — ни слова :)
Я не знаю, есть ли наш код внутри Мобильного Агента, или его там нету — однозначно могут сказать лишь авторы самого Агента. Приведенные же факты были собраны исключительно из открытых источников для общего ознакомления с ситуацией. Мои познания в анализе бинарных модулей SymbianOS Довольно скудны, и было бы интересно услышать комментарии Swappp и naum, особенно в свете этой реплики.
P.S. На данный момент с сайта Mail.Ru удалены бинарники бета-версии Агента, также их удаляют с других сайтов. У пользователей, установивших версию 1.15 на телефон происходит автоматическое «обновление» до более старой версии 1.11.
Потратив пол часа на поиск утилит и закачку бинарников Mail.ru Агента, я получил листинг со списком некоторых строк, присутствующих внутри файла JABBER_0X2001FACA.DLL. Для удобства читателя, незнакомого с кодом jabber модуля из Miranda IM, приведу сопоставления найденых строк с нашими исходниками:
XML processing (logging) | ||
---|---|---|
00032C7C | TAG_MAX_LEN too small, ignore current tag | jabber_xml.cpp (192) |
00032CA8 | ATTR_MAX_LEN too small, ignore current tag | jabber_xml.cpp (214) |
00032CE0 | XML: skip <?xml> tag | jabber_xml.cpp (343) |
00032CF8 | XML: Closing </%s> without opening tag | jabber_xml.cpp (419) |
Base stanza processing (logging) | ||
0002C464 | Invalid top-level tag ( only <message/> <presence/> and <iq/> allowed ) | jabber_thread.cpp (889) |
0002C4AC | Invalid top-level tag ( only <iq/> allowed ) | jabber_thread.cpp (895) |
Login process (logging) | ||
0002C6A8 | Requesting TLS | jabber_thread.cpp (667) |
0002C7D8 | after successful sasl | jabber_thread.cpp (831) |
0002C8AC | <iq/> iqIdGetBookmarks | jabber_iqid.cpp (1456) |
0002C968 | <iq/> iqIdGetVcard | jabber_iqid.cpp (731) |
0002CA8C | <iq/> iqIdGetRoster | jabber_iqid.cpp (351) |
0002E998 | Never publish the hash below | jabber_secur.cpp (191) |
Login process (data) | ||
0002E900 | username=\"%s\", realm=\"%s\", nonce=\"%s\", cnonce=\"%s\", nc=%08d, qop=auth, digest-uri=\"xmpp/%s\", charset=utf-8, response=%08x%08x%08x%08x | jabber_secur.cpp (156) |
Как мы можем видеть, почти все строки (кроме последней) являются отладочной информацией и входят либо в функции для работы с XML, либо в процесс подключения к XMPP-сети. Могу заметить, что остальные части джаббера сильно завязаны на интерфейс windows и/или архитектуру самой миранды.
Также, может быть интересен факт использования в XML потоке одинарных кавычек ['], который имел место и в ветке 0.7 jabber модуля из миранды (в ветке 0.8 используются двойные кавычки ["], и они субъективно более популярны).
Я не являюсь знатоком внутренностей бинарных модулей для SymbianOS, но в списке строк наткнулся также на имена классов, использующихся в нашем коде для поддержки разных методов логина. Судя по наличию аналогичных строк с «классообразным» содержимым и числом в начале, такие строки генерирутся для большинства классов. Обращаю внимание на непоследовательность использования регистра букв в аббревиатурах MD5 и NTLM.
Class names | |
---|---|
0002EA18 | 11TJabberAuth |
0002EA30 | 10TPlainAuth |
0002EA4C | 8TMD5Auth |
0002EA64 | 9TNtlmAuth |
Кстати, интересно, насколько уместна NTLM авторизация на мобильном телефоне :) (Update: говорят уместна и при желании хэш можно вычислить вручную, ну да не в этом суть)
В контексте увиденного интересно звучит комментарий по поводу «да что же можно взять из Миранды»
Мне вот очень интересно, что именно в реализации xmpp было бы полезно «украсть» из миранды? Может последовательность соединения? Да вроде она описана в открытых источниках притом подробно. Может xml-парсер? А зачем он нам, он у нас уже был и использовался. Может структуру плагинов? зачем она нам — у нас своя.
Тут упомянуто именно два находящихся под вопросом компонента протокола и всем известная модульная архитектура Miranda IM. Об остальных частях протокола — ни слова :)
Я не знаю, есть ли наш код внутри Мобильного Агента, или его там нету — однозначно могут сказать лишь авторы самого Агента. Приведенные же факты были собраны исключительно из открытых источников для общего ознакомления с ситуацией. Мои познания в анализе бинарных модулей SymbianOS Довольно скудны, и было бы интересно услышать комментарии Swappp и naum, особенно в свете этой реплики.
P.S. На данный момент с сайта Mail.Ru удалены бинарники бета-версии Агента, также их удаляют с других сайтов. У пользователей, установивших версию 1.15 на телефон происходит автоматическое «обновление» до более старой версии 1.11.