CloneFort_server

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Сообщение ev » 24.02.2008 02:35:19

тогда пример - зачем взялись за разработку l2jserver, зачем возиться с бинарным протоколом?

не совсем корректный пример
сложность написания клиентов очень отличается

Гм... Отвечу просто - "а шоб було"(c).

остается тогда сказать - "флаг в руки и барабан на шею" :)

В команде 4 человека + я, т. е. всего 5.

могу только добавить, что чат легко может написать 1 человек за месяц особо не напрягаясь
а вот удастся ли 5 разобраться с протоколом да еще и с жатием и шифрованием - большой вопрос....
ev
долгожитель
 
Сообщения: 1733
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение Chief » 24.02.2008 03:00:02

ev писал(а):а вот удастся ли 5 разобраться с протоколом да еще и с жатием и шифрованием - большой вопрос....

Кстати насчет сжатия, разработчиком использован класс TZLib
The TZlib class is a C++Builder wrapper for the ​"zlib" compression library. TZlib can be used to compress or decompress any of the ​descendants of TStream such as TFileStream or TBlobStream.....

Вот...
http://fgzzzy.narod.ru/vcl/compress/tzlib.zip

На счет шифрования колупаюсь...
Chief
новенький
 
Сообщения: 74
Зарегистрирован: 26.09.2007 17:44:59

Сообщение Chief » 28.02.2008 01:22:59

Мертвая зона :lol:
Chief
новенький
 
Сообщения: 74
Зарегистрирован: 26.09.2007 17:44:59

Сообщение ev » 28.02.2008 02:08:22

а точнее?
ev
долгожитель
 
Сообщения: 1733
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение Chief » 28.02.2008 02:42:18

ev писал(а):а точнее?

Я про тему)

Дополняю:
Оригинальный пакет (черный)
Измененный пакет (красный)

D6 1F 00 00 6C 7B 7B 03 7D 7E 7E B4 87 B3 B3 B4 85 86 87 88 89 8A 8B 8D 84 C3 FD BE B1 D1 FB FD F0 F0 97
D6 1F 00 00 6C 7B 7B 03 7D 7E 7E B4 87 00 B3 B4 00 00 00 00 00 00 8B 8D 84 C3 FD BE B1 D1 FB FD F0 F0 97

Я подозреваю что данный пакет несет в себе список пользователей (подключенных в данный момент к чату). По характеристикам CommFort, там содержится Ник, IP, MAC-адрес и пол... (Хотя не факт что еще разработчику в голову пришло туда впереть).... Так, отошел от сути данного поста. Вообщем по идеи оригинальным МАС-адресом есть значение 00-00-00-00-00-00, но забив (просто меткое попадание пару значений заметил искажения в значении. Так вот, забив данные шести позиций значением #0 получил в значении мак-адреса -> 85 86 87 88 89 8A - что уже интересно если всмотреться в оригинальный пакет.
Подозреваю что используется простейшее шифрование текста через "исключающее или" (xor), но вот по какому принципу...

Может у кого-то в голове посвежее? У кого какие мысли по этому поводу?


-----P.S.
Длина тела данного пакета = 1Fh (31 байт)
Анализируем:
В чате 1 клиент;
Информация о клиенте:
- IP: "127.0.0.1" (возможно 4 байта по двум вариантам)
- MAC: "00-00-00-00-00-00" (выяснили, что поле равно 6 байтам)
- Ник - "Mr. Chief" (8 байт длина строки + допускаем еще один байт как значение длины строки, всего 9)
- Пол - "М" (допустим 1 байт)
Не забываем про количество пользователей (значение данного поля возможно равно 2 байтам - dw, т.к. существует ограничение подключений до 4000 клиентов, да и дизассемблер показал массив пределом которого является 4000 элементов-указателей на наследника класса TCustomServerSocket).

Так что получилось? 1 + 2 + 4 + 6 + 9 = 22 байта... А всего то их 31...........
Chief
новенький
 
Сообщения: 74
Зарегистрирован: 26.09.2007 17:44:59

Сообщение Chief » 28.02.2008 02:59:11

Так...

А если попробовать наложить xor-маску?
79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97

Сейчас попробуем
:twisted:

Добавлено

Ооооооо. Прогресс пошел :wink:.
Получил выходные данные:
15 01 00 7F 00 00 01 34 06 31 30 30 00 00 00 00 00 00 00 01 09 4D 72 2E 20 43 68 69 65 66 00
А это уже истина, в ASCII выглядит вот так (приблизительно):
Код: Выделить всё
§☺ ⌂  ☺4♠100       ☺    Mr. Chief


Ну вот в итоге получаем:
15 01 00 7F 00 00 01 34 06 31 30 30 00 00 00 00 00 00 00 01 09 4D 72 2E 20 43 68 69 65 66 00

Где: UsersCount, IP, MAC, Nick
00 01 либо 00 - предположительно пол (в первом случаем 1 или 2 соответственно М или Ж, во втором 0 или 1 соответственно.


----P.S.
Последний блок содержит данные о каналах: конструктивный подход такой же... Сейчас попробую по полученной теории раскодировать весь пакет подключения.
Последний раз редактировалось Chief 28.02.2008 11:48:08, всего редактировалось 2 раз(а).
Chief
новенький
 
Сообщения: 74
Зарегистрирован: 26.09.2007 17:44:59

Сообщение Chief » 28.02.2008 04:33:30

Так пока с этой стороны будем копать.

Теперь нужно разобраться каким образом сжимаются блоки данных в пакетах (ZLib):

Оригинальный:
D6 2A 00 00 1D 21 18 13 14 70 48 19 1C 74 7B 72 72 65 82 1E 32 21 CF DC F6 E0 F7 F5 E6 EB E4 EE 0C FC E0 E1 F1 E8 F7 FE FC F0 B7 F3 35 9D

Дешифрованный (нет гарантии что метод работает):
D6 2A 00 00 64 5B 63 6F 69 0E 37 99 9D F6 F8 F6 F7 E3 05 96 BB AB 44 50 7B 6E 78 65 77 79 77 7A 99 6A 77 79 68 72 6C 62 61 6E 28 53 94 3F

В данном сообщение содержится:
[2:30:22] Mr. Chief (10.0.0.101): ТЕСТОВОЕ СООБЩЕНИЕ
Как точно кодируется еще неизвестно.
Chief
новенький
 
Сообщения: 74
Зарегистрирован: 26.09.2007 17:44:59

Сообщение ev » 28.02.2008 09:05:22

Я про тему)

это было предсказуемо и озвучено ;)
ev
долгожитель
 
Сообщения: 1733
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение Chief » 28.02.2008 11:45:32

ev писал(а):это было предсказуемо и озвучено ;)

Как минимум статья по анализу протоколов точно получится :wink:.
Chief
новенький
 
Сообщения: 74
Зарегистрирован: 26.09.2007 17:44:59

Сообщение Chief » 29.02.2008 13:01:44

Да... Совсем забыл... Соответственно если будет известна спецификация протокола, то можно конечно задуматься о портировании клиента под различные платформы (например для платформы WinCE и MIDP 2.0[Java]).

Сабж : hxxp://www.commfort.com/rus/forum/viewtopic.php?t=1316
Chief
новенький
 
Сообщения: 74
Зарегистрирован: 26.09.2007 17:44:59

Сообщение Chief » 02.03.2008 00:23:07

Последний раз редактировалось Chief 03.03.2008 20:05:40, всего редактировалось 1 раз.
Chief
новенький
 
Сообщения: 74
Зарегистрирован: 26.09.2007 17:44:59

Сообщение B4rr4cuda » 02.03.2008 06:14:45

Чисто из любопытства : а подробности?
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Сообщение Attid » 02.03.2008 11:18:02

глупости какие-то =)
в общем в очередной раз была взболомучена вода и оппа.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2583
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение ev » 02.03.2008 11:45:33

ну а поставьте себя на место автора
он зарабатывает деньги на этом, поэтому как только узнал провел беседу ;)

не уверен, что закон на стороне автора
но вот внести изменения в протокол он может легко - запаришься расшифровывать потом
ev
долгожитель
 
Сообщения: 1733
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение Chief » 02.03.2008 15:41:08

ev писал(а):но вот внести изменения в протокол он может легко - запаришься расшифровывать потом

Бессмысленно ковыряться в 3 версии протокола, т. к. в скором времени выходит 4 версия.

А вообще, т. к. это никого не заинтересовало, опять же тратить свое время не собираюсь по пусту. Все любят готовое, вот и все...
Chief
новенький
 
Сообщения: 74
Зарегистрирован: 26.09.2007 17:44:59

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru