Если перехватить Tcp-соединение к icq-login-серваку (даже "безопасное" те с использованием хэшированного пароля), данных будет достаточно для подбора пароля брутом Вот я ии подумал: стоит ли начинать заниматься чем-то подобным? С одной стороны - нет готового софта - ни мд5-крекера CUDA под эту конкретную цель, ни фейк-сервакоф с поддержкой хэшированного логина. А с другой - написать/найти такой софт особых проблем не составит Прошу ответить: -ваше мнение - надо ваще ето кому? -есть ли готовый фейк-айсику-серв с поддержкой хешированного логина? -может ли кто написать фейк-айсику-серв с поддержкой хешированного логина -может ктоНить переписать слегка мд5 брутер на CUD-e под ету задачу?
Перехватить хэш - это мало, ибо это не хэш пароля в чистом виде, а хэш пароля + случайной строки, присылаемой сервером.
IV, знаю идея в том, чтобы дописать МД5-CUDA-крякер. Чтоб он хавал И "хэш" аси (который на самом деле md5(rand_string_for_session + md5(_PAROL_) + string_constant) И rand_string_for_session. А потом перебирал бы все возможные комбинации, подставляя их вместо _PAROL_ Дело в том, что и "хэш" и рандомный параметр rand_string_for_session легко перехватить если ты: -в одной локалке с логинящимся -убедил человека залогиницца чз фейк-сервер с поддержкой хешированного входа если Xserg подскажет как грамотно дописать его мд5-брутер, моно будет брутать всего раза в 3-4 медленее чем обычные мд5 хеши. а ето порядка 80млн. паролей в секунду на относительно недорогой видяхе о_0
Для перебора хотя бы нужно знать алгоритм, алгоритма нет, перебор бессмысленный. смысла нет для единичного случая а убедить можно и в другом, что даст пароль сразу далее в теме пишем только по поводу алгоритма образования хеша только проверенные сведения, догадок не нужно всё остальное - оффтоп
Всмысле нет? Протокол-то вроде открытый =) http://iserverd1.khstu.ru/oscar/login.html Code: #define AIM_MD5_STRING "AOL Instant Messenger (SM)" /* calculate md5-hash to send to server */ md5_init(&state); md5_append(&state, (const md5_byte_t *)authkey, strlen(authkey)); md5_append(&state, (const md5_byte_t *)passwd, strlen(passwd)); md5_append(&state, (const md5_byte_t *)AIM_MD5_STRING, strlen(AIM_MD5_STRING)); md5_finish(&state, (md5_byte_t *)auth_hash); /* Now we ready send to server auth_hash array (16 bytes long) */