![]() |
![]() |
|
Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#162 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]()
Во время игры используется 3 соединения, одно на бнет и два на рилм
а так в любое время клиент может ломануться еще куда-нибудь Последний раз редактировалось Йоха; 03.03.2011 в 15:34. |
![]() |
![]() |
![]() |
#163 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]()
а есть где-нибудь список актуальных опкодов ?
|
![]() |
![]() |
![]() |
#164 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#165 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
![]() ![]() ![]() ![]() ![]() ![]() |
![]()
кстати, а кто нибудь точно знает, каким опкодом они заканчивались в 1.12.1, 2.4.3 и 3.3.5?
у меня кроме как взять снифы и собрать все что в них встречалось других мыслей нет, как это собрать. |
![]() |
![]() |
![]() |
#166 | |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
![]() |
![]() Цитата:
Раньше опкоды были в клиенте(до катаклизма). Если есть экзешники и экстрактор, то можно извлеч листы опкодов и посмотреть. А вообще листы опкодов для этих версий есть в ветке 1.12, 2.4.3 и мастер |
|
![]() |
![]() |
![]() |
#167 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
![]() ![]() ![]() ![]() ![]() ![]() |
![]()
да не, опкоды в клиенте - это косяк близзов, большая редкость. такое было по моему раза 4 за всю историю. но то были промежуточные билды.
да, хочется знать сколько и какие опкоды были на момент завершения каждого ... как бы это сказать то ... аддона пусть будет. они не только добавлялись в конец, но и переименовывались старые, а так же добавлялись куда нибудь в середину. я просто к чему... если делать БК, то 2.4.3, если ВЛК, то 3.3.5, если классик, то 1.12.1, другие билды уже нафиг не нужны и смысла в них ноль. |
![]() |
![]() |
![]() |
#168 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]()
Подскажите какой сейчас опкод на смену сидов ? раньше было CMSG_AUTH_NEW_SESSION, но сейчас что-то не найду его в списке
EDIT: разобрался, это опкод 0x0E4C Последний раз редактировалось Йоха; 04.03.2011 в 09:18. |
![]() |
![]() |
![]() |
#169 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 40
Сказал(а) спасибо: 29
Поблагодарили 13 раз(а) в 5 сообщениях
![]() |
![]()
У меня пока получилось снифать весь трафик между клиентом и сервером и получать ключ сессии, теперь надо трафик расшифровать, по какому алгоритму он шифруется?
![]() |
![]() |
![]() |
![]() |
#170 | |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]() Цитата:
Лично для меня самое сложное было написать алгоритм сборки целых пакетов из кусков raw-потока. На отладку убил пол дня. Последний раз редактировалось Йоха; 27.04.2011 в 20:14. |
|
![]() |
![]() |
![]() |
#172 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]()
все есть на форуме. Базу иды выкладывает TOM_RUS, в этой же теме есть сообщение как найти адрес ключа в базе.
|
![]() |
![]() |
![]() |
#174 | |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]() Цитата:
Этот момент понятен ? Тогда заходим в функцию ClientServices__GetCurrent, там видим: На этот раз переменная переименована в g_clientConnection, что бы увидеть ее адрес нажимаем на нее 2 раза мышью: Слева ее адрес - .data:00D03F14, он то нам и нужен. .data: - означает что переменная находится в сегменте с именем .data. нас это мало интересует, нам важно смещение внутри сегмента, это число после двоеточия. Аналогично с функцией ClientServices__GetSessionKey. Только там мы видим следующее: Здесь нужное нам число окрашено в зеленый цвет. Еще вопросы остались ? Последний раз редактировалось Йоха; 30.04.2011 в 08:58. |
|
![]() |
![]() |
Пользователь сказал cпасибо: | HuntsMan (30.04.2011) |
![]() |
#175 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
![]() |
![]()
Спасибо
![]() ![]() |
![]() |
![]() |
![]() |
#176 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]()
Подгонял снифер под 14007 билд, обнаружил любопытную вещь: клиент теперь умудряется открывать 2 соединения на одинаковый адрес:порт. В моей реализации это вызывало сбой, поскольку делалось предположение что пара адрес:ип уникальна.
|
![]() |
![]() |
![]() |
#177 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
![]() |
![]()
Хм, вот уже 3 дня пишу свой прокси для 4.1.0а. Ниразу не замечал, чтобы был 1 адресс и порт по несколько раз
|
![]() |
![]() |
![]() |
#178 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]()
Я вчера офигел, сегодня ситуация повторялась. сперва я подумал что это у меня глюк. Открыл окно проксифиера, долго пялился на адреса, действительно было 2 коннекта на одинаковый адрес и порт, даже скрин сделал
Последний раз редактировалось Йоха; 12.05.2011 в 15:26. |
![]() |
![]() |
![]() |
#180 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
![]() ![]() ![]() ![]() ![]() ![]() |
![]()
да почему в извращеньях то? почему вы озадачены подключениями на один и тот же target? раньше ведь все коннектились на какой нибудь localhost:3724 тремя клиентами одновременно и ничего...
просто ситуация такая, что близзовский лоадбалансер посчитал, что сервер ваш (на котором играете) не нагружен насколько, что бы вас коннектить на другой. |
![]() |
![]() |
![]() |
#181 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
![]() |
![]()
Если я правильно понял Йоху, то клиент открыл 2 соединения на один и тот же хост и порт, это помоему извращение.
ЗЫ: А у меня сейчас впервые в жизни клиент открыл соединения только с 3724 и 1119 ![]() ![]() |
![]() |
![]() |
![]() |
#182 |
Ученый
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
![]() |
![]()
А в чем извращение то? Я вот тоже не понимаю. Ну подумаешь клиент открывает соединения на один и тотже хост, порт что в этом такого то?
|
![]() |
![]() |
![]() |
#183 | |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]() Цитата:
Роман смотри как это получается (например): клиент открывает коннект на адрес 195.12.246.210:3724 потом там с десяток пакетов пробегает, он открывает новое соединение на адрес 195.12.246.213:3724 (или 211 или 212) и закрывает первое. И в это одно соединение бегают редкие пакетики (наверно варден). В это время клиент находится в окне выбора персонажей. При входе в мир он открывает еще одно соединение ну там опять же допустим на адрес 195.12.246.212:3724. И получается что у клиента два активных соединения: 195.12.246.212:3724 195.12.246.213:3724 А бывает что после входа в мир остаются два соединения абсолютно одинаковых: 195.12.246.211:3724 195.12.246.211:3724 Хотя бывали случаи что клиент открывает одно соединение и до входа в мир в это одно соединение и работает |
|
![]() |
![]() |
![]() |
#184 | |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#186 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
![]() |
![]()
Глянь в лог проксикапа. Мб он закрыл коннект и потом появился такой-же новый.
|
![]() |
![]() |
![]() |
#188 | |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]() Цитата:
У меня в снифере корректно отслеживаются октрытия/закрытия соединений. [Добавлено] Вот сейчас клиент открыл всего 1 соединение до входа в мир, а при входе еще одно, точно такое же, и все прекрасно работает Последний раз редактировалось Йоха; 12.05.2011 в 19:36. |
|
![]() |
![]() |
![]() |
#189 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
![]() ![]() ![]() ![]() ![]() ![]() |
![]()
я не понимаю, чего вы паритесь... честно, не понимаю. я же объяснил, так ведет себя близовский лоадбалансер. ну выбирает он тот же хост, в чем проблема?
вы должны понимать, что это ВТОРОЕ соединение и работает оно соответствующе, сервер с клиентом это вот понимают. а вы чего? ![]() |
![]() |
![]() |
![]() |
#190 | |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
![]() |
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#191 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
![]() ![]() ![]() ![]() ![]() ![]() |
![]()
странные вы...
второе соединение устанавливается со времен 3.3.5, ну правда тогда оно просто переключалось. не помню с какого момента связь клиента с миром поддерживается двумя соединениями. они даже в клиенте по разному обозначаются и показывают каждый свое latency. не спрашивайте на*** это все, не знаю ![]() |
![]() |
![]() |
![]() |
#192 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
![]() |
![]()
Йоха, я думал ты имеешь ввиду 2 абсолютно одинаковых коннекта.
Тут же порт клиента разный. адресс 127.0.0.1, а порт то меняется |
![]() |
![]() |
![]() |
#193 | |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
![]() |
![]() Цитата:
В этом ясное дело нет ничего сверхъестественного, просто именно на 14007 билде мой снифер стал падать, до этого все работало, и это меня и удивило. Я уже исправил недочет, сейчас тоже все снифается без проблем. |
|
![]() |
![]() |
![]() |
#194 | |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
![]() |
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#195 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
![]() ![]() ![]() ![]() ![]() ![]() |
![]()
ну судя по предыдущему сообщению не совсем наизусть
![]() во первых опечатка, клиент подымает соединения на разных физических серверах... полминуты сообразить пытался ![]() ![]() во вторых все немного не так работает. первое соединение и есть лоадбалансер. после первого соединения этот лоадбалансер выбирает куда ж вашего клиента пробросить, где по свободнее. у йохи вот случилась ситуация, что его реалм был свободен сам по себе и лоадбалансер выбрал для второго соединения этот же хост. после установки второго коннекта лоадбалансер уже ничего не указывает. он уже указал. правда судя по наблюдениям, этот лоадбалансер на этом не останавливается и может переключить клиента на другой хост снова. насколько я понял происходит это в каких то "гарандиозных" событиях, типа выход из мира в чарлист, ворлдпортах и т.п. когда собсно самое время выполнить переключение. т.е. вас не будет переключать в том время когда вы бежите из голдшира в вестфалл. именно поэтому наблюдаются несколько "вторых" сессий. короче лоадбалансер работает на первом соединении и то и дело перебрасывает клиента с хоста на хост. и еще раз - так уж получается иногда, что это "домашнее" (так вроде оно называется) соединение оказывается на том же хосте, где и первый коннект. пусть это будет называться мастер-хост. |
![]() |
![]() |
Пользователь сказал cпасибо: | HuntsMan (12.05.2011) |
![]() |
#196 |
Гость
Сообщений: n/a
|
![]()
Разщбираюсь со снифером! Как образец взял tiawps.
Добился получения процесса! Но блин упорно не хочет читать SessionKey ![]() В tiawps делают вот так: PHP код:
PHP код:
PHP код:
|
![]() |
![]() |
#197 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
![]() ![]() |
![]()
Win7? ASLR?
|
![]() |
![]() |
![]() |
#198 | |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#199 |
Гость
Сообщений: n/a
|
![]() |
![]() |
![]() |
#200 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
![]() ![]() ![]() ![]() ![]() ![]() |
![]()
попробуйте так:
http://ru-mangos.ru/showpost.php?p=12460&postcount=4 |
![]() |
![]() |
Пользователь сказал cпасибо: |