короче мы тут с чаосом13 посоветовались и решили поставить на колине сервак а на винде томкат и сниферить пакетики) посмотрим что получится
колинь, это не какой-то дистрибутив, это лишь среда для запуска линукса. какой линукс на борту — такие и пакеты доступны.
Ну ладно при помощи RPM прикрутил tcpdump. Вот запрос / ответ на GetRoleBase для персонажа с id 0xABCD, может хоть кто то поймет что где. Запрос: 代码: 02:41:42.191907 IP (tos 0x0, ttl 64, id 43070, offset 0, flags [DF], proto: TCP (6), length: 63) aumanager.48593 > aumanager.29400: P, cksum 0x184f (incorrect (-> 0x060f), 114637507:114637518(11) ack 119188052 win 3898 <nop,nop,timestamp 181516 181360> 0x0000: 4500 003f a83e 4000 4006 7a5d 0a00 020f E..?.>@[email protected]].... 0x0010: 0a00 020f bdd1 72d8 06d5 3ac3 071a aa54 ......r...:....T 0x0020: 8018 0f3a 184f 0000 0101 080a 0002 c50c ...:.O.......... 0x0030: 0002 c470 8bc5 0880 0020 3a00 00ab cd ...p......:.... Ответ: 代码: 02:41:42.191907 IP (tos 0x0, ttl 64, id 59413, offset 0, flags [DF], proto: TCP (6), length: 111) aumanager.29400 > aumanager.48593: P, cksum 0x187f (incorrect (-> 0x729c), 1:60(59) ack 11 win 1024 <nop,nop,timestamp 181516 181516> 0x0000: 4500 006f e815 4000 4006 3a56 0a00 020f E..o..@.@.:V.... 0x0010: 0a00 020f 72d8 bdd1 071a aa54 06d5 3ace ....r......T..:. 0x0020: 8018 0400 187f 0000 0101 080a 0002 c50c ................ 0x0030: 0002 c50c 8bc5 3800 0020 3a00 0000 3c01 ......8...:...<. 0x0040: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0060: 0000 0000 0000 0000 0000 0000 0000 00 ...............
Если калькулятор не нравится(например первое число в бинарке не заменить ноликом, да и вообще не выделить результат) Онлайн инструмент конвектор скрипт конвектора
вот! вот это то что нужно. правда в твоем отрывке еще шапище огромная, непонятно зачем. 8bc5 0880 0020 3a00 00ab cd вот важная часть. соответственно, понять можно как-то так: 8 bc50 8 8000 203a 0000 abcd
0000101111000101 -> 3013bc5? Скрипт кривой, скажу. Legend: Исходные данные, Дек, Хекс 357818bc5 может так? Я тоже не пойму что за шапище. Случайно tcpdump не поймал все TCP заголовки пакета?
у него работа такая =) их по-моему отрезать как-то можно, но вообще, лучше сделай дамп, загрузи его куда-то и дай ссылку. под виндой можно через wireshark посмотреть.
Спасибо за совет, сделал дамп и открыл WireSharkом. Это действительно хедеры. 代码: Linux cooked capture 0000 00 00 03 04 00 00 00 00 00 00 00 00 00 00 08 00 Internet Protocol, Src: 10.0.2.15 (10.0.2.15), Dst: 10.0.2.15 (10.0.2.15) 0000 45 00 00 3f a8 90 40 00 40 06 7a 0b 0a 00 02 0f 0010 0a 00 02 0f Transmission Control Protocol, Src Port: 48593 (48593), Dst Port: 29400 (29400), Seq: 1, Ack: 1, Len: 11 0000 bd d1 72 d8 06 d5 3d 57 07 1a b4 f4 80 18 0f 3a 0010 18 4f 00 00 01 01 08 0a 00 0c e7 a2 00 0b f7 e6 Data (11 bytes) 0000 8b c5 08 80 00 20 76 00 00 ab cd Интересно, что у всех пакетов неверный чексум :lol:
Некоторые данные урывки кода, позволяющие полностью разобрать работу протокола: Во первых, все протоколы унаследуются от Rpc, который унаследован от Protocol. А вот и код: Кодировка Еще две ОЧЕНЬ интересных функций из хида: Как оказывается все чрезвычайно просто и очевидно. А после всего этого идет маршалинг параметров запроса. На счет декодирования все в обратном порядке. Протокол для декодинга берется айвебом по мапу, который наверно грузится с ХМЛя. :lol:
Всем спасибо, все свободны :lol: Возможно скоро будет iWeb-php и для PerfectWorld :lol: Кстати, gouranga, не подскажешь как вытащить ВСЕ опкоды, например для общения с gdeliveryd или gamed в полном обьеме?
Подойдет для добавления элементарных протоколов, которые были и в оригинальном айвебе. Кстати, исеккей и осеккей в конфигах в базе64 или просто как есть?