Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 17.07.2011, 20:18   #1
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
хм, можно тада тыкнуть пальцем где в l2clientemu при парсе пакетов логин серва идет взятие инфы о длинне из этих двух байтов?
из за того что логин сервер не посылает подряд больше одного пакета между посылками клиента (и наоборот тоже), а так же учитывая малый размер пакетов, то при общении с логин сервером крайне маловероятно получить TCP пакет (хотя TCP потоковый протокол и правильнее названить это просто порцией данных) не равный игровому пакету, а вот с геймом дело обстоит не так идеально и от него может одной порцией приходить любое, в том числе и дробное количество игровых пакетов, так что там надо обязательно ориентироваться на первые два байта перед каждым пакетом.
ЗЫ через пакетхак всё пашет потому что он разбирает на пакеты и в сокет для твоего бота пакеты попадают "правильными" порциями, а поскольку пакетхак и бот на одном компе то трафик между ними уже не обрабатывается никакими маршрутизаторами и аналогичными устройствами которые могут "склеивать пакеты"

Добавлено через 3 минуты
Цитата:
Сообщение от Kilatif Посмотреть сообщение
Ну и если проанализировать даже вот те логи, которые я скинул, то видно, что вроде как после той части, что я выделил жирным цветом (это в l2phx полностью второй пакет) сразу должно быть C8 00 - размер следующего пакета, а там не понятно что....
ну дык правильно, у тебя же этот размер типо "дешифровался" вот он и превратился в хз что ибо после реального конца второго пакета шифрация вся сбивается и начинает лишь корёжить данные
__________________
Я здесь практически не появляюсь!, Skype - ikskor

Последний раз редактировалось xkor, 17.07.2011 в 20:18. Причина: Добавлено сообщение
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Старый 18.07.2011, 00:28   #2
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Цитата:
ну дык правильно, у тебя же этот размер типо "дешифровался" вот он и превратился в хз что
Ну вот, я же говорю что скорее всего все легко решаемо. Спасибо большое за помощь.

Добавлено через 1 час 17 минут
Теперь другая проблема... Ну не столько проблема, сколько очень любопытно, что же это? В общем... После каждого второго пакета NpcInfo (и только его) приходит 8 байт непонятно чего. Причем именно после каждого второго, не больше, не меньше. Это с чем-нибудь конкретно связано?

P.S. В l2phx все также отображается нормально, размер байт все так же является 200 для NpcInfo, не смотря на эти 8 байт лишних после каждого второго пакета.
P.P.S. Пакеты я смотрел Wireshark-ом, а не своей программой.

Последний раз редактировалось Kilatif, 18.07.2011 в 00:32. Причина: Добавлено сообщение
Kilatif вне форума   Ответить с цитированием
Старый 18.07.2011, 00:54   #3
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Kilatif, как warshark может разбивать непрерывный поток шифрованных данных от L2 сервера на пакеты?
И как отображает эти пакеты пакетхак? Вообще никак?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 18.07.2011, 14:48   #4
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Yegor, пакеты от wireshark разбивал я сам, учитывая первых 2 байта каждого пакета, что это размер. в пакетхаке отображаются они нормально, никаких лишних 8 байт нет. Я бы не интересовался бы этим, но просто в моей проге эти 8 байт мне мешают нормально читать пакеты, а считать каждый второй NpcInfo как то не хочется =)
Kilatif вне форума   Ответить с цитированием
Старый 17.07.2011, 11:07   #5
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

это число взято при приеме пакета из сокета, т.е. это то самое Len, а не размер из первых 2 байт. ну и я не думаю, что на том серве есть доп шифрация, ибо l2phx видит все нормально, при этом я не использую никаких newxor.dll и даже обход смены xor. ну а вообще, это шоки =)
Kilatif вне форума   Ответить с цитированием
Старый 19.07.2011, 11:00   #6
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Yegor, дык я ж говорю, эти 8 байт появляются и в моей программе, вот и получается что после 2 пакетов NpcInfo моя прога ловит эти 8 байт и начинает искать там в первых 2 байтах размер пакета, а в них этого нет.

Последний раз редактировалось Kilatif, 19.07.2011 в 11:02. Причина: Добавлено сообщение
Kilatif вне форума   Ответить с цитированием
Старый 20.07.2011, 17:04   #7
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

В общем эти 8 байт моя ошибка.. Все нормально, проблема исчерпана наконец =)

Добавлено через 6 минут
У меня еще один вопрос есть... Вот есть сокет, он принял кусок данных. Этот кусок данных будет хранится в сокете до тех пор пока я его не прочитаю или он может стереться, если я его не успею прочитать? Пример:
Есть в сокете 10 пакетов я читаю из сокета 1 пакет, потом очень долго его обрабатываю, когда в следующий раз читаю сокет - он мне выдает уже 5-ый допустим, а первых 2-4 так и не выдает. Может быть такое? Или сокет будет ждать до тех пор пока я не заберу у него очередную порцию информации?

Последний раз редактировалось Kilatif, 20.07.2011 в 17:04. Причина: Добавлено сообщение
Kilatif вне форума   Ответить с цитированием
Старый 20.07.2011, 18:02   #8
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

ниче такого, ты же проста данные читаешь, куда они денуца
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 20.07.2011, 18:55   #9
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

При создании сокета для приема пакетов выделяется буфер определенного размера. Точно не уверен но по моему если он переполниться то новые данные система принимать не будет, а так как прием ведется по протоколу TCP в которому гарантируется сохранность информации, то сервер не будет слать новых пакетов пока мы не освободим буфер и соответственно просто нас дисконектнет по таймауту через некоторое время.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
За это сообщение Yegor нажился спасибкой от:
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:07.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!