хм, можно тада тыкнуть пальцем где в l2clientemu при парсе пакетов логин серва идет взятие инфы о длинне из этих двух байтов?
Добавлено через 2 минуты
там по ходу игнорируют два байта длинны да, копируя сразу с третьего байта и полагаясь на размер того что было в буфере, хм, интересно как он вообще тогда работает если в буфере может быть не один пакет
__________________ Начало.
Последний раз редактировалось supernewbie, 16.07.2011 в 12:37.
Причина: Добавлено сообщение
supernewbie, да в l2clientemu этот момент упрощен, я тоже изначально по нему учился работать с пакетами и потом очень долго искал в чем ошибка когда сбивалась шифрация пакетов.
Kilatif, а на каком сервере ты тестируешь? Там точно нет доп нестандартной шифрации?
В твоих логах второй пакет начинается с 1F 00 а в заголовке указано что Length: 1231 (0x4CF), откуда взяты эти цифры?
хм, можно тада тыкнуть пальцем где в l2clientemu при парсе пакетов логин серва идет взятие инфы о длинне из этих двух байтов?
из за того что логин сервер не посылает подряд больше одного пакета между посылками клиента (и наоборот тоже), а так же учитывая малый размер пакетов, то при общении с логин сервером крайне маловероятно получить TCP пакет (хотя TCP потоковый протокол и правильнее названить это просто порцией данных) не равный игровому пакету, а вот с геймом дело обстоит не так идеально и от него может одной порцией приходить любое, в том числе и дробное количество игровых пакетов, так что там надо обязательно ориентироваться на первые два байта перед каждым пакетом.
ЗЫ через пакетхак всё пашет потому что он разбирает на пакеты и в сокет для твоего бота пакеты попадают "правильными" порциями, а поскольку пакетхак и бот на одном компе то трафик между ними уже не обрабатывается никакими маршрутизаторами и аналогичными устройствами которые могут "склеивать пакеты"
Добавлено через 3 минуты
Цитата:
Сообщение от Kilatif
Ну и если проанализировать даже вот те логи, которые я скинул, то видно, что вроде как после той части, что я выделил жирным цветом (это в l2phx полностью второй пакет) сразу должно быть C8 00 - размер следующего пакета, а там не понятно что....
ну дык правильно, у тебя же этот размер типо "дешифровался" вот он и превратился в хз что ибо после реального конца второго пакета шифрация вся сбивается и начинает лишь корёжить данные
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Последний раз редактировалось xkor, 17.07.2011 в 20:18.
Причина: Добавлено сообщение
ну дык правильно, у тебя же этот размер типо "дешифровался" вот он и превратился в хз что
Ну вот, я же говорю что скорее всего все легко решаемо. Спасибо большое за помощь.
Добавлено через 1 час 17 минут
Теперь другая проблема... Ну не столько проблема, сколько очень любопытно, что же это? В общем... После каждого второго пакета NpcInfo (и только его) приходит 8 байт непонятно чего. Причем именно после каждого второго, не больше, не меньше. Это с чем-нибудь конкретно связано?
P.S. В l2phx все также отображается нормально, размер байт все так же является 200 для NpcInfo, не смотря на эти 8 байт лишних после каждого второго пакета.
P.P.S. Пакеты я смотрел Wireshark-ом, а не своей программой.
Последний раз редактировалось Kilatif, 18.07.2011 в 00:32.
Причина: Добавлено сообщение
Kilatif, как warshark может разбивать непрерывный поток шифрованных данных от L2 сервера на пакеты?
И как отображает эти пакеты пакетхак? Вообще никак?
Yegor, пакеты от wireshark разбивал я сам, учитывая первых 2 байта каждого пакета, что это размер. в пакетхаке отображаются они нормально, никаких лишних 8 байт нет. Я бы не интересовался бы этим, но просто в моей проге эти 8 байт мне мешают нормально читать пакеты, а считать каждый второй NpcInfo как то не хочется =)