|
Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером |
|
Опции темы | Поиск в этой теме | Опции просмотра |
02.01.2011, 11:26 | #1 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
как можно узнать структуру пакета идущего от клиента к серверу?
Например: клиент посылает при сборе лута опкод "CMSG_ITEM_QUERY_SINGLE" хотя при снифах на оффе данный опкод я не обнаружил. через IDA нашел данный участок кода int __thiscall sub_422380(void *this, int a2) { void *v3; // esi@1 v3 = this; sub_7D1480(a2, 384); sub_7D14E0(a2, *((_DWORD *)v3 + 6), *((_DWORD *)v3 + 7)); sub_7D1480(a2, *((_DWORD *)v3 + 5)); return sub_7D1480(a2, *((_DWORD *)v3 + 4)); } как я понял sub_7D1480(a2, 384); отправка CMSG_ITEM_QUERY_SINGLE = 0x00180 Но что отвечает за структуру пакета ? Последний раз редактировалось NeatElves; 02.01.2011 в 12:02. |
02.01.2011, 11:35 | #2 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Сейчас, данные о предметах содержатся в клиенте.
Так же эти данные приходят в пакете 0x08C8 и 0x0828. Вот ваша же структура, но с переименованными функциями, спасибо TOM_RUS, за базу ИДА Код:
int __thiscall sub_422380(void *this, int a2) { void *v3; // esi@1 v3 = this; CDataStore__PutInt32(a2, 384); // opcode CDataStore__PutInt64(*((_DWORD *)v3 + 6), *((_DWORD *)v3 + 7)); // guid CDataStore__PutInt32(a2, *((_DWORD *)v3 + 5)); return CDataStore__PutInt32(a2, *((_DWORD *)v3 + 4)); } Последний раз редактировалось Konctantin; 02.01.2011 в 11:42. |
Пользователь сказал cпасибо: | acteros (02.01.2011) |
02.01.2011, 12:47 | #3 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
хм
CDataStore__PutInt64(*((_DWORD *)v3 + 6), *((_DWORD *)v3 + 7)); // guid тут вроде раньше id вещи был как я понял 0x0828 это ответ сервера на CMSG_ITEM_QUERY_SINGLE PHP код:
2011-01-02 13:34:14 ERROR: SESSION: opcode CMSG_ITEM_QUERY_SINGLE (0x0180) have unprocessed tail data (read stop at 8 from 16) в чем подвох ? |
02.01.2011, 13:20 | #4 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
там все не так, посылается запрос, с номером предмета 6A 32 00 00
Код:
Packet C->S, CMSG_DB2_DATA2 (384, 0x0180, cond 16), 16 bytes, Flags: None |---------------------------------------------------------------------------| | OFFSET | 0 1 2 3 4 5 6 7 8 9 A B C D E F |0123456789ABCDEF| |----------------------------------------------------------|----------------| |00000000| 00 00 00 00 00 00 00 00 6A 32 00 00 C2 8E 23 50 |........j2....#P| |----------------------------------------------------------|----------------| Код:
Packet S->C, SMSG_DB2_DATA2 (2088, 0x0828, spec 5), 48 bytes, Flags: None |---------------------------------------------------------------------------| | OFFSET | 0 1 2 3 4 5 6 7 8 9 A B C D E F |0123456789ABCDEF| |----------------------------------------------------------|----------------| |00000000| 6A 32 00 00 46 63 F3 AD C2 8E 23 50 20 00 00 00 |j2..Fc....#P ...| |00000010| 6A 32 00 00 0C 00 00 00 00 00 00 00 FF FF FF FF |j2..............| |00000020| FF FF FF FF 35 09 00 00 00 00 00 00 00 00 00 00 |....5...........| |----------------------------------------------------------|----------------| Код:
Packet S->C, SMSG_DB2_DATA2 (2088, 0x0828, spec 5), 593 bytes, Flags: Trailing |---------------------------------------------------------------------------| | OFFSET | 0 1 2 3 4 5 6 7 8 9 A B C D E F |0123456789ABCDEF| |----------------------------------------------------------|----------------| |00000000| 6A 32 00 00 5C 0B 6E 41 4E E5 9B 91 41 02 00 00 |j2..\.nAN...A...| |00000010| 6A 32 00 00 01 00 00 00 40 00 00 00 00 20 00 00 |j2......@.... ..| |00000020| 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF |................| |00000030| FF FF FF FF 01 00 00 00 00 00 00 00 00 00 00 00 |................| |00000040| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000050| 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 |................| |00000060| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000070| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000080| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000090| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |000000A0| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |000000B0| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |000000C0| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |000000D0| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |000000E0| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |000000F0| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000100| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000110| 00 00 00 00 03 43 00 00 00 00 00 00 00 00 00 00 |.....C..........| |00000120| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000130| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000140| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000150| FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| |00000160| FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000170| 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF |................| |00000180| FF FF FF FF FF FF FF FF FF FF FF FF 04 00 00 00 |................| |00000190| 3E 00 D0 9E D1 87 D0 B8 D1 89 D0 B5 D0 BD D0 BD |>...............| |000001A0| D0 B0 D1 8F 20 D0 B2 D0 BE D0 B4 D0 B0 20 D0 B8 |.... ........ ..| |000001B0| D0 B7 20 D0 9B D1 83 D0 BD D0 BD D0 BE D0 B3 D0 |.. .............| |000001C0| BE 20 D0 BA D0 BE D0 BB D0 BE D0 B4 D1 86 D0 B0 |. ..............| |000001D0| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |000001E0| 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF |................| |000001F0| FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000200| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000210| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000220| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000230| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000240| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |00000250| 00 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |................| |----------------------------------------------------------|----------------| |
02.01.2011, 23:36 | #5 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
Структура пакета как я понял такая:
от клиента приходят такие значения 2011-01-02 23:53:46 STORAGE:64 Item Query = 0 как из них можно вычислить id предмета |
03.01.2011, 00:00 | #6 | ||
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
нет
Код:
WowGuid guid uint entry uint unixTime Цитата:
Цитата:
|
||
04.01.2011, 12:37 | #7 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
ещё назрел такой вопрос
в каком месте происходит обработка опкода 0x0545D в клиенте я подозреваю что это Код:
signed int __thiscall CGPlayer_C__OnLootResponse(void *this, int a2, unsigned int a3) Код:
|-------------------------------------------------|---------------------------------| | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | 0 1 2 3 4 5 6 7 8 9 A B C D E F | |-------------------------------------------------|---------------------------------| | 8A D7 00 0C 3C 00 30 F1 01 00 00 00 00 01 00 4C | . . . . < . 0 . . . . . . . . L | | 51 00 00 02 00 00 00 C6 81 00 00 00 00 00 00 00 | Q . . . . . . . . . . . . . . . | | 00 00 00 00 | . . . . | |-------------------------------------------------|---------------------------------| подскажите в каком направлении копать ? |
04.01.2011, 17:20 | #8 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
немного разобрался
Но вот структура пакета со стороны сервака Код:
data << uint64(guid); data << uint8(loot_type); data << LootView(*loot, this, permission); Код:
signed int __thiscall CGPlayer_C__OnLootResponse(void *this, int a2, unsigned int a3) { int v3; // eax@1 int v4; // ecx@1 unsigned int v5; // edi@1 void *v6; // esi@1 char v7; // zf@4 char v8; // al@4 signed int result; // eax@23 void *v10; // eax@32 void *v11; // edi@32 int v12; // ecx@40 int v13; // eax@40 unsigned int v14; // ST0C_4@40 signed int v15; // [sp-4h] [bp-34h]@18 signed int v16; // [sp-4h] [bp-34h]@34 int v17; // [sp+Ch] [bp-24h]@13 int v18; // [sp+10h] [bp-20h]@13 int v19; // [sp+14h] [bp-1Ch]@13 int v20; // [sp+18h] [bp-18h]@13 int v21; // [sp+1Ch] [bp-14h]@13 int v22; // [sp+20h] [bp-10h]@13 WGUID guid; // [sp+24h] [bp-Ch]@1 unsigned __int8 v24; // [sp+2Fh] [bp-1h]@1 v5 = a3; v6 = this; CDataStore__GetInt64(&guid); CDataStore__GetInt8(&v24); v3 = *((_DWORD *)v6 + 2216); v4 = *((_DWORD *)v6 + 2217); if ( *((_QWORD *)v6 + 1108) && v3 == guid.low && v4 == guid.high ) { v8 = v24; } else { v7 = (v4 | v3) == 0; v8 = v24; if ( !v7 || v24 != 2 && v24 != 3 && v24 != 4 && v24 != 6 && v24 != 7 && v24 != 8 && v24 != 9 ) { if ( v24 ) { v17 = (int)off_AAECB8; v18 = 0; v19 = 0; v20 = 0; v21 = 0; CDataStore__PutInt32(38015); CDataStore__PutInt64(guid.low, guid.high); v22 = 0; ClientServices__SendPacket_0(&v17); v17 = (int)off_AAECB8; if ( v20 != -1 ) off_AAECBC(&v17, &v18, &v19, &v20); } else { if ( *(_DWORD *)(v5 + 16) != *(_DWORD *)(v5 + 20) ) { CDataStore__GetInt8((char *)&a3 + 3); if ( BYTE3(a3) == 15 ) CGGameUI__DisplayError(615); } } *((_DWORD *)v6 + 2216) = 0; *((_DWORD *)v6 + 2217) = 0; CGUnit_C__sub_5E0720(0, -1); sub_6023C0(0); CGGameUI__UnlockItem(guid); *(_DWORD *)(v5 + 20) = *(_DWORD *)(v5 + 16); return 1; } } if ( v8 ) { v10 = ClntObjMgrGetObjectPtr(guid, TYPEMASK_OBJECT, ".\\Player_C.cpp", 12016); v11 = v10; if ( v10 ) { if ( ((unsigned int)*(_WORD *)(*((_DWORD *)v10 + 2) + 8) >> 1) & 1 ) sub_821BC0(guid); v12 = v24; v13 = guid.high; *((_DWORD *)v6 + 2216) = guid.low; v14 = a3; *((_DWORD *)v6 + 2217) = v13; sub_8A70F0(v11, v14, v12); if ( (unsigned int)&unk_C000FF & *(_DWORD *)(*((_DWORD *)v6 + 64) + 68) ) { CloseLoot(1, 1, 0); return 1; } } else { if ( (guid.high & 0xF0000000) == 1073741824 ) v16 = 150; else v16 = 144; CGGameUI__DisplayError(v16); v17 = (int)off_AAECB8; v18 = 0; v19 = 0; v20 = 0; v21 = 0; CDataStore__PutInt32(38015); CDataStore__PutInt64(guid.low, guid.high); v22 = 0; ClientServices__SendPacket_0(&v17); v17 = (int)off_AAECB8; if ( v20 != -1 ) { off_AAECBC(&v17, &v18, &v19, &v20); return 1; } } return 1; } CDataStore__GetInt8((char *)&a3 + 3); switch ( BYTE3(a3) ) { case 6u: v15 = 142; goto LABEL_31; case 4u: v15 = 143; goto LABEL_31; case 5u: v15 = 145; goto LABEL_31; case 8u: v15 = 146; goto LABEL_31; case 9u: v15 = 147; goto LABEL_31; case 0xAu: CGGameUI__DisplayError(456); return 1; case 0xBu: v15 = 501; goto LABEL_31; case 0xCu: CGGameUI__DisplayError(520); result = 1; break; case 0xDu: CGGameUI__DisplayError(521); result = 1; break; case 0xEu: CGGameUI__DisplayError(522); result = 1; break; case 0x10u: CGGameUI__DisplayError(461); result = 1; break; case 0x11u: CGGameUI__DisplayError(150); result = 1; break; default: v15 = 144; LABEL_31: CGGameUI__DisplayError(v15); *((_DWORD *)v6 + 2216) = 0; *((_DWORD *)v6 + 2217) = 0; CGUnit_C__sub_5E0720(0, -1); sub_6023C0(0); CGGameUI__UnlockItem(guid); CGUnit_C__sub_5E0720(0, -1); result = 1; break; } return result; } data << uint8(loot_type); понятно где обрабатываются это Код:
CDataStore__GetInt64(&guid); CDataStore__GetInt8(&v24); Код:
data << LootView(*loot, this, permission); Последний раз редактировалось Konctantin; 04.01.2011 в 17:51. |
04.01.2011, 17:52 | #9 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
в самом низу функции, смотрите:
Код:
CDataStore__GetInt8((char *)&a3 + 3); switch ( BYTE3(a3) ) { case 6u: v15 = 142; goto LABEL_31; case 4u: v15 = 143; goto LABEL_31; case 5u: v15 = 145; goto LABEL_31; case 8u: v15 = 146; goto LABEL_31; case 9u: v15 = 147; goto LABEL_31; case 0xAu: CGGameUI__DisplayError(456); return 1; case 0xBu: v15 = 501; goto LABEL_31; case 0xCu: CGGameUI__DisplayError(520); result = 1; break; case 0xDu: CGGameUI__DisplayError(521); result = 1; break; case 0xEu: CGGameUI__DisplayError(522); result = 1; break; case 0x10u: CGGameUI__DisplayError(461); result = 1; break; case 0x11u: CGGameUI__DisplayError(150); result = 1; break; default: v15 = 144; LABEL_31: CGGameUI__DisplayError(v15); *((_DWORD *)v6 + 2216) = 0; *((_DWORD *)v6 + 2217) = 0; CGUnit_C__sub_5E0720(0, -1); sub_6023C0(0); CGGameUI__UnlockItem(guid); CGUnit_C__sub_5E0720(0, -1); result = 1; break; } |
05.01.2011, 00:03 | #10 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
Спрошу тут, что бы не создавать новую тему.
Код:
signed int __cdecl PH_SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE(int a1, int a2, int a3, int a4) { signed int result; // eax@2 int v5; // [sp+4h] [bp-14h]@2 int v6; // [sp+8h] [bp-10h]@2 int v7; // [sp+Ch] [bp-Ch]@1 int v8; // [sp+13h] [bp-5h]@2 unsigned __int8 v9; // [sp+17h] [bp-1h]@4 CDataStore__GetInt32(&v7); switch ( v7 ) { case 2: case 3: case 4: CDataStore__GetWowGUID(a4, &v5); CDataStore__GetInt8(&v8); sub_89B300(v7, v5, v6, v8); result = 1; break; case 0: case 5: case 6: case 8: CDataStore__GetInt8(&v8); sub_89B770(v7, (unsigned __int8)v8); result = 1; break; case 7: CDataStore__GetInt8(&v8); CDataStore__GetInt8(&v9); if ( v7 != 7 ) goto LABEL_7; sub_89B6F0((unsigned __int8)v8, v9); result = 1; break; case 1: case 9: case 10: sub_89B130(v7); goto LABEL_7; default: LABEL_7: result = 1; break; } return result; } |
05.01.2011, 01:34 | #12 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
А где закопаны HighGuidType? Не могу найти щас, но когда открывал экзешник идой, помню, что было такое, правда список быстро рос и я потерял ее
add: Опкод фазы маски никто не находил. Я сделал квесты у воргенов с фазой. Спарсил снифф. Все опкоды длиной в 4 байта спарсил кроме 1. Думал это и есть маска фазы, но нет. Очень она большая Код:
Server->Client: SMSG_PHASE_MASK (0xBE7E) (Offset: 1518 / 0x05EE) Length: 4 Time: 04/14/1970 00:45:00 Phase Mask: 16382 Последний раз редактировалось Lordronn; 05.01.2011 в 13:39. |
05.01.2011, 21:45 | #13 | |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Цитата:
http://getmangos.com/community/topic...ket-questions/ пост №16 |
|
05.01.2011, 22:06 | #14 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
Получается опкод идет при старте енкаутера в инсте, и в нем передается гуид босса
|
06.01.2011, 17:37 | #15 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
Подскажите где в клиенте обрабатывается опкод с номером 0x03C54 поиск идой не чего не дал
Последний раз редактировалось acteros; 08.01.2011 в 18:27. |
07.01.2011, 06:59 | #16 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
Верно ли я понял структуру PH_SMSG_UPDATE_OBJECT
Код:
var mapID = reader.ReadInt16(); var count = reader.ReadInt32(); long sposition = reader.GetPosition(); var unk = reader.ReadByte(); if (unk != 3) reader.SetPosition(sposition); else { var c = reader.ReadInt32(); for (uint i = 0; i < c; ++i) reader.ReadPackedGuid(); } for (uint i = 0; i < count; ++i) { var stage = reader.ReadByte(); //OBJECT_UPDATE_TYPE case 1: case 2: if ( sub_4963C0(a3, v6 == 2) ) break; return 0; case 0: if ( sub_4953E0(v3, 0, 0, 0) ) break; return 0; case 3: sub_493F60(); break; default: break; } |
07.01.2011, 07:00 | #17 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Угу.
А еще можно было посмотреть в мангосовский src/game/UpdateData.cpp, там то же самое написано. ) |
03.08.2012, 08:36 | #18 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
Чтобы не плодить лишних тем спрошу тут, решил написать свой auth server, в целом вроде всё понятно, но после отправки AUTH_LOGON_PROOF, клиент просто зависает на "Проверка версии" опкод на запрос реалмов не приходит.
|
03.08.2012, 09:16 | #19 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
|
03.08.2012, 09:18 | #20 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
м2 верный, формат пакета скорее всего где-то там ошибся, тк сейчас поставил Accountflags в 0x01 что соответствует гм клиенту и пришёл запрос за реалмы...
|
04.08.2012, 23:46 | #21 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
Подскажите где отправляются и формируются эти два пакета
Код:
9 2 Recv 0000 00 2A .* 10 42 Recv 0000 EC 01 01 00 00 00 FC 8B D5 E9 79 1F 03 B6 39 97 ..........y...9. 0010 82 DD F8 47 EF 42 44 7E DE F0 A5 E0 20 54 E9 AD ...G.BD~.... T.. 0020 75 B7 07 3C 6C EE CB 95 F5 D4 u..<l..... Второй как я понял "SMSG_AUTH_CHALLENGE" а вот первый, так и не нашёл где отправляется Последний раз редактировалось NeatElves; 05.08.2012 в 10:01. |
05.08.2012, 09:59 | #22 |
Новичок
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
|
|
04.09.2012, 09:21 | #23 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
Может немного глупый вопрос т.к только разбираюсь в криптографии, session key в сервере и session key который хранится в памяти клиента должны быть одинаковы, хочу написать простой sandbox для 5.0.4 вот остановился на экране создания персонажа, не могу правильно расшифровать пакеты после AuthSession
|
04.09.2012, 13:34 | #24 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
Конечно
|
04.09.2012, 15:53 | #25 |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
Может потому что там идет бит-стриминг?
|
23.08.2013, 13:10 | #26 |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
Начал разбираться с 5.3.0 не подскажите как найти функцию "NetClient__JAMClientDispatch", до этого всегда работал только с готовыми образами для ida от TOM_RUS.
|
30.03.2014, 18:26 | #27 | |
Новичок
Регистрация: 25.06.2010
Адрес: Lipetsk
Сообщений: 21
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
|
Возник вопрос как сейчас найти структуру CMSG
По номеру нашел Цитата:
Версия 5.4.7 18019 |
|
30.03.2014, 23:47 | #28 |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
x-ref по 686AF4 выдаст тебе структуру
http://ru-mangos.ru/showthread.php?p=32565#post32565 |
Пользователь сказал cпасибо: | SeT (31.03.2014) |
22.07.2014, 10:11 | #29 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
|
Как узнать адрес обработки ServerToClient: SMSG_UNK_0987 (0x0987) Length: 12 (клиент 18414)?
|
23.07.2014, 11:16 | #30 |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
уже много раз об этом говорили
|
23.07.2014, 17:14 | #31 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
|
OpcodeTools даже Jam группу не показывает, по коду обработка приходит в конечную точку
Код:
(*(void (__thiscall **)(int, int))(*(_DWORD *)v6 + 68))(v6, a3); v11 = v5 & 7 | ((v5 & 0x30 | (((unsigned __int8)(v5 & 0x80) | (v5 >> 1) & 0x7F00) >> 1)) >> 1); if ( (v5 & 0x148) == 256 && (v12 = *(_DWORD *)(v6 + 4 * v11 + 1360)) != 0 ) result = ((int (__cdecl *)(_DWORD, unsigned int, int, int))(v12 - ((v5 | (v5 << 16)) ^ 0x62A3A31D)))( *(_DWORD *)(v6 + 4 * v11 + 9552), v5, a2, v4); else result = (*(int (__thiscall **)(int))(*(_DWORD *)v4 + 24))(v4); Последний раз редактировалось Konctantin; 23.07.2014 в 21:41. |
23.07.2014, 23:32 | #33 |
Ученый
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
|
|
24.07.2014, 09:15 | #35 | |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
Цитата:
OpcodeTools нужно обновлять под 18414 |
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пакеты MANGOS | Archon64 | Корзина | 3 | 08.01.2011 17:33 |
вылет клиента | astlan | Корзина | 1 | 28.04.2010 15:04 |
Ошибка клиента #134 | pdx15 | Флудильня | 9 | 22.04.2010 09:04 |
Настройки клиента ВоВ | tempura | Tools | 6 | 25.03.2010 01:44 |