Найти алгоритм шифрования.

Phoenix

Сначала клиент посылает серверу пароль, видимо хеш этого пароля.
пароль 12345
Посылает каждый раз разные(4 итерации):
 
71 df 7e ee 34 ae d6 b3
8f 7f 8a a3 a3 4f 20 77
69 a6 70 92 2b a9 3b f9
2a f7 01 67 cc e9 36 e9
e7 4c 55 e5 86 f6 1c 5b

Может есть какие-то сайты, которые подбирают алгоритм?
Потом сервер отвечает какой-то неимоверной хренью.

[FIRST][09:30:14.218517]>> :
4e 6f 72 00 e7 4c 55 e5 86 f6 1c 5b 01 Nor__LU____[_
[FIRST][09:30:14.245297]<<R:+0
b3 00 00 00 00 00 00 00 9f 00 00 00 36 7a 66 a6 ____________6zf_
b3 8f 10 0d 75 52 45 6e ef 68 87 2e a3 91 0f 59 ____uREn_h_.___Y
53 cf e2 a6 5c 10 f2 72 3c 10 0f 98 7c 74 34 fc S___\__r<___|t4_
41 83 17 7c fa e1 4f 39 e3 ae e9 6a 61 13 68 f0 A__|__O9___ja_h_
7e 4e f9 25 df cf 6b 41 ab 2e 2e 51 df 42 a3 ce ~N_%__kA_..Q_B__
59 0f 01 c8 52 83 1f 4d 52 61 8d 15 54 7a fa 95 Y___R__MRa__Tz__
dd 71 06 bb 63 53 4a 48 9f 57 d3 3c b8 ed bb 63 _q__cSJH_W_<___c
6c 1d 4f f9 f7 e1 ab 97 19 77 d9 76 dd c3 5b 2a l_O______w_v__[*
31 8e 9c 97 a8 ff ab 24 31 b8 13 a5 68 c9 3d 25 1______$1___h_=%
d3 89 81 f6 cd 1f fa 88 15 91 8f 7d 76 69 9f 99 ___________}vi__
c5 42 d6 fb a9 67 88 2e 84 f6 d3 00 00 00 00 83 _B___g_.________
74 e1 5f 91 68 e5 dd t___h__


В которой зашифрована запись, частью которой является свово "FINTER_FO".
Куда вообще копать?

Hastya

А сколько байт возвращается всего?

zya369

алгоритм шифрования
видимо хеш этого пароля

:confused:
ЗЫ что тебе даст алгоритм шифрования, если ты вдруг его узнаешь?

Phoenix

183, но там меняются только блоки 159 байт и 8 в самом конце.

Phoenix

даст то, что я смогу выкинуть эту прослойку и общаться напрямую из своей проги. Она 1) глючная 2) добавляет задержек 3) создаёт кучу тредов, который только мешают

Phoenix

При этом, пароль 100% зашифрован в первом сообщении (в примере e7 4c 55 e5 86 f6 1c 5b т.к. если пароль вбить левый, то прога после первого же ответа понимает, что есть сказали login failed и отрубает. (т.е. дополнительно ничего не посылает серверу)

katrin2201

Куда вообще копать?
Реверсить клиентскую либу, я думаю.
Скорее всего там либо сторонняя либа, что легко среверсится. Либо что-нибудь свое и тупое, что можно как есть встроить в свою прогу (если лицензия позволяет).
Угадывать по самому блобу каким способом он был получен - задача на порядок сложнее, мне кажется.

kiracher

ну клиент может хеш и отправляет - там 8 байт, значит может оказаться какой нибудь стандартный алгоритм хеширования. только что тебе это даст? оно же похоже еще и подсоленное и что выступает в роли соли и используется ли в дальнейшем (например, для шифрования ответов) - неясно. то же самое и со вторым ответом сервера - там блок данных зашифрованный и похоже его хеш в конце. то есть, не будучи специалистом, я бы подумал что это более-менее стандартный алгоритм шифрования, но что даст это знание? попробуй разные хелловорды и примеры с использованием стандартных библиотек - может и нароешь что-то весьма похожее. можно еще брутфорсить сервер случайными данными например. или посмотреть воспринимает ли сервер один и тот же запрос клиента как валидный и тогда только его и использовать. и тд. но это мало что даст.
попробуй идти с другого конца - подсмотреть названия функций, нет ли каких подключаемых библиотек в клиенте и их содержимое, какие сисколлы используются в какой момент и тд. возможно удастся использовать этот кусок клиента и дергать его напрямую.

Hastya

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

zorin29

Из
если пароль вбить левый, то прога после первого же ответа понимает, что есть сказали login failed и отрубает. (т.е. дополнительно ничего не посылает серверу)
не следует
При этом, пароль 100% зашифрован в первом сообщении (в примере e7 4c 55 e5 86 f6 1c 5b)
Тривиальный контрпример - сервер сам отсылает клиенту пароль, и если ты его в клиент ввел неправильно, клиент отрубается.
Впрочем, я думаю, пароль действительно отражен в первом сообщении. Я спорю только с "100%". Хотя, может, ты просто округлил :)

Phoenix

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

kiracher

Вообще, они эту первую авторизацию ввели, видимо, чтобы не хакнули протокол и не выкинули их приложение. Потому что потом идут уже полностью незашифрованные сообщения, даже без контрольных сумм.
а реплеить не помогает ? в смысле отправлять ту же самую строчку что и клиент когда-то отправлял и сервер принял. может быть нюанс что там в каком то виде текущее время задействовано.
Оставить комментарий
Имя или ник:
Комментарий: