Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Опкоды, Формулы, Клиент

Важная информация

Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.03.2011, 10:59   #161
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Такой вопрос: сколько соединений сейчас открывает клиент - 2 или больше?
HuntsMan вне форума   Ответить с цитированием
Старый 03.03.2011, 11:43   #162
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Во время игры используется 3 соединения, одно на бнет и два на рилм
а так в любое время клиент может ломануться еще куда-нибудь

Последний раз редактировалось Йоха; 03.03.2011 в 15:34.
Йоха вне форума   Ответить с цитированием
Старый 03.03.2011, 12:16   #163
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

а есть где-нибудь список актуальных опкодов ?
Йоха вне форума   Ответить с цитированием
Старый 03.03.2011, 13:35   #164
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Йоха Посмотреть сообщение
а есть где-нибудь список актуальных опкодов ?
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 50 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
Lordronn вне форума   Ответить с цитированием
Старый 03.03.2011, 13:44   #165
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

кстати, а кто нибудь точно знает, каким опкодом они заканчивались в 1.12.1, 2.4.3 и 3.3.5?
у меня кроме как взять снифы и собрать все что в них встречалось других мыслей нет, как это собрать.
RomanRom2 вне форума   Ответить с цитированием
Старый 03.03.2011, 14:09   #166
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Цитата:
каким опкодом они заканчивались
Ласт опкод в листе?

Раньше опкоды были в клиенте(до катаклизма). Если есть экзешники и экстрактор, то можно извлеч листы опкодов и посмотреть. А вообще листы опкодов для этих версий есть в ветке 1.12, 2.4.3 и мастер
Lordronn вне форума   Ответить с цитированием
Старый 03.03.2011, 18:03   #167
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

да не, опкоды в клиенте - это косяк близзов, большая редкость. такое было по моему раза 4 за всю историю. но то были промежуточные билды.

да, хочется знать сколько и какие опкоды были на момент завершения каждого ... как бы это сказать то ... аддона пусть будет. они не только добавлялись в конец, но и переименовывались старые, а так же добавлялись куда нибудь в середину.

я просто к чему... если делать БК, то 2.4.3, если ВЛК, то 3.3.5, если классик, то 1.12.1, другие билды уже нафиг не нужны и смысла в них ноль.
RomanRom2 вне форума   Ответить с цитированием
Старый 03.03.2011, 19:44   #168
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Подскажите какой сейчас опкод на смену сидов ? раньше было CMSG_AUTH_NEW_SESSION, но сейчас что-то не найду его в списке

EDIT:

разобрался, это опкод 0x0E4C

Последний раз редактировалось Йоха; 04.03.2011 в 09:18.
Йоха вне форума   Ответить с цитированием
Старый 20.04.2011, 17:37   #169
srv38
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 40
Сказал(а) спасибо: 29
Поблагодарили 13 раз(а) в 5 сообщениях
srv38 На верном пути
По умолчанию

У меня пока получилось снифать весь трафик между клиентом и сервером и получать ключ сессии, теперь надо трафик расшифровать, по какому алгоритму он шифруется?
srv38 вне форума   Ответить с цитированием
Старый 20.04.2011, 17:44   #170
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от srv38 Посмотреть сообщение
У меня пока получилось снифать весь трафик между клиентом и сервером и получать ключ сессии, теперь надо трафик расшифровать, по какому алгоритму он шифруется?
Функция расшифровки есть в tiawps, я брал оттуда.
Лично для меня самое сложное было написать алгоритм сборки целых пакетов из кусков raw-потока. На отладку убил пол дня.

Последний раз редактировалось Йоха; 27.04.2011 в 20:14.
Йоха вне форума   Ответить с цитированием
Старый 29.04.2011, 15:11   #171
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Можете подсказать адрес ключа для 4.1.0?
HuntsMan вне форума   Ответить с цитированием
Старый 29.04.2011, 15:40   #172
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

все есть на форуме. Базу иды выкладывает TOM_RUS, в этой же теме есть сообщение как найти адрес ключа в базе.
Йоха вне форума   Ответить с цитированием
Старый 29.04.2011, 17:12   #173
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Цитата:
Сообщение от Йоха Посмотреть сообщение
все есть на форуме. Базу иды выкладывает TOM_RUS, в этой же теме есть сообщение как найти адрес ключа в базе.
Я видел эти сообщения. Проблема заключается в том, что я до сих пор не пойму как в IDA увидеть адрес того или иного элемента
HuntsMan вне форума   Ответить с цитированием
Старый 30.04.2011, 08:53   #174
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от HuntsMan
Я видел эти сообщения. Проблема заключается в том, что я до сих пор не пойму как в IDA увидеть адрес того или иного элемента
Смотри, как описано на предыдущей странице ищем функцию по уникальной строке. Внутри нее есть такой кусок :


Этот момент понятен ?
Тогда заходим в функцию ClientServices__GetCurrent, там видим:


На этот раз переменная переименована в g_clientConnection, что бы увидеть ее адрес нажимаем на нее 2 раза мышью:


Слева ее адрес - .data:00D03F14, он то нам и нужен. .data: - означает что переменная находится в сегменте с именем .data. нас это мало интересует, нам важно смещение внутри сегмента, это число после двоеточия.

Аналогично с функцией ClientServices__GetSessionKey.
Только там мы видим следующее:

Здесь нужное нам число окрашено в зеленый цвет.

Еще вопросы остались ?
Изображения
Тип файла: jpg ida1.jpg (24.1 Кб, 75 просмотров)
Тип файла: jpg ida2.jpg (14.3 Кб, 71 просмотров)
Тип файла: jpg ida3.jpg (14.1 Кб, 75 просмотров)
Тип файла: jpg ida4.jpg (14.0 Кб, 64 просмотров)

Последний раз редактировалось Йоха; 30.04.2011 в 08:58.
Йоха вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
HuntsMan (30.04.2011)
Старый 30.04.2011, 11:29   #175
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Спасибо Все понял, все замечательно Просто навигация в IDA по-моему малость неудобная. Кстати, если вдруг кому пригодится, то вот хорошенькая книженция
HuntsMan вне форума   Ответить с цитированием
Старый 12.05.2011, 14:58   #176
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Подгонял снифер под 14007 билд, обнаружил любопытную вещь: клиент теперь умудряется открывать 2 соединения на одинаковый адрес:порт. В моей реализации это вызывало сбой, поскольку делалось предположение что пара адрес:ип уникальна.
Йоха вне форума   Ответить с цитированием
Старый 12.05.2011, 15:20   #177
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Хм, вот уже 3 дня пишу свой прокси для 4.1.0а. Ниразу не замечал, чтобы был 1 адресс и порт по несколько раз
Lordronn вне форума   Ответить с цитированием
Старый 12.05.2011, 15:22   #178
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Я вчера офигел, сегодня ситуация повторялась. сперва я подумал что это у меня глюк. Открыл окно проксифиера, долго пялился на адреса, действительно было 2 коннекта на одинаковый адрес и порт, даже скрин сделал

Последний раз редактировалось Йоха; 12.05.2011 в 15:26.
Йоха вне форума   Ответить с цитированием
Старый 12.05.2011, 17:53   #179
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Мммм близзы знают толк в извращеньях. Я просто новый класс соединения создаю, и запихиваю его в контейнерный класс.
HuntsMan вне форума   Ответить с цитированием
Старый 12.05.2011, 18:10   #180
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

да почему в извращеньях то? почему вы озадачены подключениями на один и тот же target? раньше ведь все коннектились на какой нибудь localhost:3724 тремя клиентами одновременно и ничего...

просто ситуация такая, что близзовский лоадбалансер посчитал, что сервер ваш (на котором играете) не нагружен насколько, что бы вас коннектить на другой.
RomanRom2 вне форума   Ответить с цитированием
Старый 12.05.2011, 18:11   #181
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Если я правильно понял Йоху, то клиент открыл 2 соединения на один и тот же хост и порт, это помоему извращение.

ЗЫ: А у меня сейчас впервые в жизни клиент открыл соединения только с 3724 и 1119 обычно ещё на 80 порты соединений 5 откроет
HuntsMan вне форума   Ответить с цитированием
Старый 12.05.2011, 18:32   #182
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

А в чем извращение то? Я вот тоже не понимаю. Ну подумаешь клиент открывает соединения на один и тотже хост, порт что в этом такого то?
alien вне форума   Ответить с цитированием
Старый 12.05.2011, 18:50   #183
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от HuntsMan Посмотреть сообщение
Если я правильно понял Йоху, то клиент открыл 2 соединения на один и тот же хост и порт, это помоему извращение.
Правильно понял, я тоже так думаю -)

Роман смотри как это получается (например):
клиент открывает коннект на адрес 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

Хотя бывали случаи что клиент открывает одно соединение и до входа в мир в это одно соединение и работает
Йоха вне форума   Ответить с цитированием
Старый 12.05.2011, 18:52   #184
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Цитата:
И получается что у клиента два активных соединения:
195.12.246.212:3724
195.12.246.213:3724
Уверен что они активны? Может он их закрывает, а ты просто не пишешь информацию о закрытии соединения?(у тебя ведь консольный сниффер?)
Lordronn вне форума   Ответить с цитированием
Старый 12.05.2011, 19:09   #185
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Подтверждаю слова Йохи:


Непонимаю только зачем так делать...
HuntsMan вне форума   Ответить с цитированием
Старый 12.05.2011, 19:14   #186
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Глянь в лог проксикапа. Мб он закрыл коннект и потом появился такой-же новый.
Lordronn вне форума   Ответить с цитированием
Старый 12.05.2011, 19:20   #187
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Да не закрывает он ничего... Держутся 2 активных соединения на один и тот же хост и порт
HuntsMan вне форума   Ответить с цитированием
Старый 12.05.2011, 19:23   #188
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
Уверен что они активны? Может он их закрывает, а ты просто не пишешь информацию о закрытии соединения?(у тебя ведь консольный сниффер?)
Уверен! я сперва тоже подумал что глюк моего снифера, потом открыл проксифиер - там была та же картина : те же два одинаковых соединения, и циферки трафика увеличивались по обоим, то есть они не просто были открыты, они были оба активны и по ним передавались данные.

У меня в снифере корректно отслеживаются октрытия/закрытия соединений.

[Добавлено]
Вот сейчас клиент открыл всего 1 соединение до входа в мир, а при входе еще одно, точно такое же, и все прекрасно работает



Изображения
Тип файла: jpg sniffer.jpg (32.5 Кб, 49 просмотров)
Тип файла: jpg proxifier.jpg (32.7 Кб, 46 просмотров)

Последний раз редактировалось Йоха; 12.05.2011 в 19:36.
Йоха вне форума   Ответить с цитированием
Старый 12.05.2011, 21:02   #189
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

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

вы должны понимать, что это ВТОРОЕ соединение и работает оно соответствующе, сервер с клиентом это вот понимают. а вы чего?
RomanRom2 вне форума   Ответить с цитированием
Старый 12.05.2011, 21:14   #190
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
вы должны понимать, что это ВТОРОЕ соединение и работает оно соответствующе, сервер с клиентом это вот понимают. а вы чего?
Пытаемся понять а на*** все это Думаю что теперь по умолчанию подымается 2 соединения на одном хосте, а потом в зависимости от нагрузки одно из соединений закрывается, и открывается на другом хосте.
HuntsMan вне форума   Ответить с цитированием
Старый 12.05.2011, 21:21   #191
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

странные вы...
второе соединение устанавливается со времен 3.3.5, ну правда тогда оно просто переключалось. не помню с какого момента связь клиента с миром поддерживается двумя соединениями. они даже в клиенте по разному обозначаются и показывают каждый свое latency.

не спрашивайте на*** это все, не знаю это нужно принять как свершившийся факт и жить с этим.
RomanRom2 вне форума   Ответить с цитированием
Старый 12.05.2011, 21:28   #192
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Йоха, я думал ты имеешь ввиду 2 абсолютно одинаковых коннекта.
Тут же порт клиента разный. адресс 127.0.0.1, а порт то меняется
Lordronn вне форума   Ответить с цитированием
Старый 12.05.2011, 21:43   #193
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
Йоха, я думал ты имеешь ввиду 2 абсолютно одинаковых коннекта.
Тут же порт клиента разный. адресс 127.0.0.1, а порт то меняется
да это все понятно. Раньше такого не было, я сколько снифал всегда коннекты были на разные адреса или порт. Это только с 14007 билда пошла такая фигня что коннекты оказываются на один и тот же адрес порт.
В этом ясное дело нет ничего сверхъестественного, просто именно на 14007 билде мой снифер стал падать, до этого все работало, и это меня и удивило. Я уже исправил недочет, сейчас тоже все снифается без проблем.
Йоха вне форума   Ответить с цитированием
Старый 12.05.2011, 21:50   #194
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
странные вы...
второе соединение устанавливается со времен 3.3.5, ну правда тогда оно просто переключалось. не помню с какого момента связь клиента с миром поддерживается двумя соединениями. они даже в клиенте по разному обозначаются и показывают каждый свое latency.

не спрашивайте на*** это все, не знаю это нужно принять как свершившийся факт и жить с этим.
Я в курсе про соединения, я эту тему практически наизусть знаю Я про то, что клиент раньше подымал 2 коннекта на разных физических серверах, и это было впринципе вполне логично. Но сейчас он подымает 2 соединения, но уже на одном физическом сервере, а дальше переключается уже куда лоад балансер укажет. Я про то, что смысл было это делать, если реализация раньше имхо была более качественная из соображений здравого смысла.
HuntsMan вне форума   Ответить с цитированием
Старый 12.05.2011, 22:14   #195
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

ну судя по предыдущему сообщению не совсем наизусть

во первых опечатка, клиент подымает соединения на разных физических серверах... полминуты сообразить пытался клиент подымает (инициирует) соедиенения на твоем компе, а не на серверах это как бэ немного разные вещи, но я понял о чем речь.

во вторых все немного не так работает.
первое соединение и есть лоадбалансер. после первого соединения этот лоадбалансер выбирает куда ж вашего клиента пробросить, где по свободнее. у йохи вот случилась ситуация, что его реалм был свободен сам по себе и лоадбалансер выбрал для второго соединения этот же хост.

после установки второго коннекта лоадбалансер уже ничего не указывает. он уже указал.

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

короче лоадбалансер работает на первом соединении и то и дело перебрасывает клиента с хоста на хост. и еще раз - так уж получается иногда, что это "домашнее" (так вроде оно называется) соединение оказывается на том же хосте, где и первый коннект. пусть это будет называться мастер-хост.
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
HuntsMan (12.05.2011)
Старый 22.05.2011, 13:57   #196
Grinder
Гость
 
Сообщений: n/a
По умолчанию

Разщбираюсь со снифером! Как образец взял tiawps.
Добился получения процесса!
Но блин упорно не хочет читать SessionKey

В tiawps делают вот так:

PHP код:
DWORD number_of_read_bytes=0;

    
char pointer***91;4***93; = {'\0'};
    
ReadProcessMemory(wow_process_handle, (LPCVOID)CONNECTION_PTR_OFFSETpointer4, &number_of_read_bytes);

    if(
number_of_read_bytes != 4)
    {
        
printf("couldn't read pointer, just read %u bytes instead of 4\n"number_of_read_bytes);
        
CloseHandle(wow_process_handle);
        return 
FALSE;
    }
    
// convert bytes to pointer
    
unsigned int sessionKeyPosition 0;
    
memcpy(&sessionKeyPositionpointer4);
    
printf("Got pointer: %#X\n"sessionKeyPosition);

    
number_of_read_bytes 0;
    
ReadProcessMemory(wow_process_handle, (LPCVOID)(SESSIONKEY_OFFSET+sessionKeyPosition), sessionKeySESSIONKEY_LENGTH, &number_of_read_bytes);
    
CloseHandle(wow_process_handle);
    if(
number_of_read_bytes != SESSIONKEY_LENGTH)
    {
        
printf("couldn't read sessionkey, read %u bytes instaed of %u\n"number_of_read_bytesSESSIONKEY_LENGTH);
        return 
FALSE;
    } 
Это забил в enum'е чтобы не передавать параметры

PHP код:
SESSIONKEY_LENGTH 40
SESSIONKEY_OFFSET 
0x508
CONNECTION_PTR_OFFSET 
0x00D03F14 
Для проверки делал вывод в консоль на равенство
PHP код:
if(number_of_read_bytes != SESSIONKEY_LENGTH
В итоге плучил что number_of_read_bytes = 0!!!!! Где косяк?
  Ответить с цитированием
Старый 22.05.2011, 14:30   #197
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Win7? ASLR?
zergtmn вне форума   Ответить с цитированием
Старый 22.05.2011, 14:31   #198
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от Grinder Посмотреть сообщение
Разщбираюсь со снифером! Как образец взял tiawps.
Добился получения процесса!
Но блин упорно не хочет читать SessionKey

В tiawps делают вот так:

PHP код:
DWORD number_of_read_bytes=0;

    
char pointer***91;4***93; = {'\0'};
    
ReadProcessMemory(wow_process_handle, (LPCVOID)CONNECTION_PTR_OFFSETpointer4, &number_of_read_bytes);

    if(
number_of_read_bytes != 4)
    {
        
printf("couldn't read pointer, just read %u bytes instead of 4\n"number_of_read_bytes);
        
CloseHandle(wow_process_handle);
        return 
FALSE;
    }
    
// convert bytes to pointer
    
unsigned int sessionKeyPosition 0;
    
memcpy(&sessionKeyPositionpointer4);
    
printf("Got pointer: %#X\n"sessionKeyPosition);

    
number_of_read_bytes 0;
    
ReadProcessMemory(wow_process_handle, (LPCVOID)(SESSIONKEY_OFFSET+sessionKeyPosition), sessionKeySESSIONKEY_LENGTH, &number_of_read_bytes);
    
CloseHandle(wow_process_handle);
    if(
number_of_read_bytes != SESSIONKEY_LENGTH)
    {
        
printf("couldn't read sessionkey, read %u bytes instaed of %u\n"number_of_read_bytesSESSIONKEY_LENGTH);
        return 
FALSE;
    } 
Это забил в enum'е чтобы не передавать параметры

PHP код:
SESSIONKEY_LENGTH 40
SESSIONKEY_OFFSET 
0x508
CONNECTION_PTR_OFFSET 
0x00D03F14 
Для проверки делал вывод в консоль на равенство
PHP код:
if(number_of_read_bytes != SESSIONKEY_LENGTH
В итоге плучил что number_of_read_bytes = 0!!!!! Где косяк?
GetLastError() и смотрите код ошибки...
TOM_RUS вне форума   Ответить с цитированием
Старый 22.05.2011, 14:33   #199
Grinder
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от zergtmn Посмотреть сообщение
Win7? ASLR?
Да, Win7
  Ответить с цитированием
Старый 22.05.2011, 14:54   #200
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

попробуйте так:
http://ru-mangos.ru/showpost.php?p=12460&postcount=4
__________________
Konctantin вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Ответ


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

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



Текущее время: 01:10. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot