Показать сообщение отдельно
Старый 10.03.2010, 19:04   #2
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

================================================== =====================================
4 Fog
А если прикрепить учетку еще и к US BN то оригинальное имя отправиться 2 раза и появится меню выбора учеток. Из двух одинаковых, правда.

================================================== =====================================
5 TOM_RUS
Цитата:
А если прикрепить учетку еще и к US BN то оригинальное имя отправиться 2 раза и появится меню выбора учеток. Из двух одинаковых, правда.
Один аккаунт можно 2 раза прикрепить? о_О

================================================== =====================================
6 Aven
к учетной записи БН можно прикреплять несколько аккаунтов, тогда после авторизации можно выбрать, какую учетную запись wow использовать.

================================================== =====================================
7 TOM_RUS
Цитата:
к учетной записи БН можно прикреплять несколько аккаунтов, тогда после авторизации можно выбрать, какую учетную запись wow использовать.
Это понятно, я понял так что одну и туже учетку можно 2 раза прикрепить...
Цитата:
Возможно стоит поизучать исходники всяких PVPGN и bnetd...
Вот тут есть описание протокола для старых игр, опкоды под каждую свои...
Старый протокол не поможет, я ничего общего с новым не нашел...

================================================== =====================================
8 Fog
Цитата:
Один аккаунт можно 2 раза прикрепить? о_О
Не знаю как щас, но когда я создавал BN учетку у меня изначально создалась us-учетка, прикрепил к ней обыкновенный акк, перевел BN на eu и какое-то время было 2 записи (дня 3), оба вели на один аккаунт.

P.S. В ЛК на battle.net отображалась eu-версия оригинальной учетки как WOTLK, а us-версия - как Trial, при каждом заходе писал, что срок вышел и требовал проплатить.

Велосипед ?

Реалмлист-опкод
Код:
42 02 1A 07 04 0B 00 15 D0 A2 D0 BA D0 B0 D1 87
20 D0 A1 D0 BC D0 B5 D1 80 D1 82 D0 B8 80 00 00
01 00 00 00 0C 00 40 A0 C4 9C 00 42 02 1A 07 00
0D 00 17 D0 AF D1 81 D0 B5 D0 BD D0 B5 D0 B2 D1
8B D0 B9 20 D0 BB D0 B5 D1 81 80 00 00 01 00 00
00 0C 00 43 C8 00 00 00 42 02 1A 07 02 0B 00 17
D0 A1 D1 82 D1 80 D0 B0 D0 B6 20 D0 A1 D0 BC D0
B5 D1 80 D1 82 D0 B8 80 00 00 01 00 00 00 0C 00
43 C8 00 00 00 42 02 1A 07 02 09 00 13 D0 9A D0
BE D1 80 D0 BE D0 BB D1 8C 2D D0 BB D0 B8 D1 87
80 00 00 01 00 00 00 0C 00 40 CC ED 91 00 42 02
1A 07 03 0C 00 10 D0 A1 D0 B5 D0 B4 D0 BE D0 B3
D1 80 D0 B8 D0 B2 80 00 00 01 00 00 00 0C 00 40
99 A9 FC 00 42 02 1A 07 01 0D 00 08 D0 93 D1 80
D0 BE D0 BC 80 00 00 01 00 00 00 0C 00 43 C8 00
00 00 42 02 1A 07 00 0E 00 1D D0 9F D0 B8 D1 80
D0 B0 D1 82 D1 81 D0 BA D0 B0 D1 8F 20 D0 B1 D1
83 D1 85 D1 82 D0 B0 80 00 00 01 00 00 00 0C 00
40 B2 5E 35 00 42 02 1A 07 00 0F 00 17 D0 92 D0
B5 D1 87 D0 BD D0 B0 D1 8F 20 D0 9F D0 B5 D1 81
D0 BD D1 8F 80 00 00 00 00 00 00 0C 00 43 C8 00
...
Указатель для итераций
ID батлгруппы
Имя (Ткач Смерти)
Длина имени в байтах
Связано с локалью ? id мира в батлгруппе ?
Какие-то другие данные по id мира курсив составляет GUID реалма (?) 0B - ??? - не посылается в предыдущем пакете

Нолик
Флаги
00 + offline? (00) + realmType (01) + 00 00 00 + timezone (0C) + 00
population

================================================== =====================================
9 TOM_RUS

Сегодня было выяснено что battle.net протокол использует модули (DLL) подобно Warden, модули эти скачиваются с сервера http://auth.eu.depot.battle.net:80 (для евро). Обработку пакетов осуществляет этот самый загружаемый модуль. Название модуля было обнаружено в серверных пакетах 42 08 (первый логин, когда модуль еще не загружен на компьютер) и 42 10 (последующие логины). Логично предположить что в первом пакете (40 00) есть информация о том, загружен модуль или нет.

В данный момент известно 6 модулей, их названия следующие:
PHP код:
36b27cd911b33c61730a8b82c8b2495fd16e8024fc3b2dde08861c77a852941c.authтакже известный как Thumbprint.dll
23451d428a1671e27635e923e9acfd6f8a883acb1f8e6b2a4152f037e5841594
.authтакже известный как Password.dll
f6aba5c5c77dde9484ea718ac8be35bd4fd49293849fdee1871320fd2ee5dff2
.authтакже известный как SYSDESC.dll

5a22ce74646016952737205c0ae4f9a55cfa69e1aa1ef4469d5aa74f3dcdbb1b
.authтакже известный как Password.dll
61292e01a368a60a91d4f8d6903fd5968de21bdab8fdc8f36ca0a05cc11bab53
.authтакже известный как Thumbprint.dll
012153849a95462bfbd818b5d060ec4a4a2c4ab9a1c0147cef221a83ae0c3141
.authтакже известный как Resume.dll 
Сохраняются модули после загрузки в папке:
C:\Documents and Settings\<USER_NAME>\Local Settings\Application Data\Blizzard Entertainment\Battle.net\Cache.

================================================== =====================================
10 Deamon

Изврат, извраат!

Прошлым вечером я пытался найти обработчики для этих опкодов в 3.2.2. Но в battlenet.dll я нашел только релазиции протоколов http/2.0 и ftp. А в wow.exe находится класс BattlenetLogin, и обработчиками там тоже и не пахнет.

Теперь понятно почему

================================================== =====================================
11 TOM_RUS
Приблизительная структура пакета 42 10:
PHP код:
5 байт строка auth
1 байт 0
2 байта регион 
(EU)
32 байта название модуля
3 байта 
(возможно опкоды для модуля)
если третий байт из последних трех равен 0то:
{
    
32+32+128 байт уходит обработчику в Password.dll
}
если третий байт равен 3то:
{
    
32 байт
    14 байт
    имя
    2 байта
    аккаунт
    4
+4+4 байта
}

потом опять повторяется:
5 байт строка auth
1 байт 0
2 байта регион 
(EU)
32 байта название модуля
2 байта 
(возможно опкоды для модуля)
512 байт уходит обработчику в Thumbprint.dll 
================================================== =====================================
12 Kosss

Гдето в 0x4210 пакете помоему возвращается ИП сервера, либо в нём содержится хаш включающий в себя ИП шлющего сервера. Возможно ли?

Просто если перенаправить например клиента на localhost через прокси Kobold PX, то клиент разрывает коннект с сообщением что игровой сервер не тот. Хотя прокси пропускает пакеты без изменений.

Либо в 0x4000 первом пакете клиент хашит ип по которому коннектит, но тогда сервер не слал бы жирного пакета в 791 байт у меня а ответил чем то мелким с отказом.

В общую копилку видимо аналогии RECONNECT_CHALLENGE:
PHP код:
CLIENT:
LENGTH2
OPCODE
0x4001
OPCODE_NAME
UNKNOWN
DATA
:
40 01

SERVER
:
LENGTH4
OPCODE
0x4101
OPCODE_NAME
UNKNOWN
DATA
:
41 01 0D 02 
Появились тогда когда я придержал 0x4210 дебуггером.

================================================== =====================================
13 TOM_RUS
Когда-то я тоже столкнулся с этой проблемой, но не стал разбираться из-за чего это происходит и заюзал winpcap вместо прокси. А что если прокси запустить на другой машине с реальным IP? Просто в battle.net.dll есть вот такой кусок кода:
PHP код:
int __cdecl sub_3C925610()
{
  
int result// eax@1
  
char v1// ***91;sp+4h***93; ***91;bp-4h***93;@1

  
dword_3C97A5D8 inet_addr("0.0.0.0");
  
dword_3C97A5E8 inet_addr("127.0.0.1");
  
dword_3C97A5D4 inet_addr("255.255.255.255");
  
dword_3C97A5C8 = *(_DWORD *)sub_3C925530((int)&v1"10.0.0.0/8", (int)&dword_3C97A5DC);
  
dword_3C97A5CC = *(_DWORD *)sub_3C925530((int)&v1"172.16.0.0/12", (int)&dword_3C97A5E0);
  
result sub_3C925530((int)&v1"192.168.0.0/16", (int)&dword_3C97A5E4);
  
dword_3C97A5D0 = *(_DWORD *)result;
  return 
result;

Возможно он используется для проверки не является ли IP сервера локальным...

================================================== =====================================
14 Kosss
Да кстати. Возможно клиент банально проверил на локальный адрес. Проверю и сообщу.
__________________
Konctantin вне форума   Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
ANTOMA (10.03.2010), Dereka (10.03.2010), DeusModus (10.03.2010), Fear (11.03.2010), Viste (10.03.2010)