|
Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
01.06.2010, 09:58 | #1 | ||||||
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Спасибо всем за советы и подсказки:
Цитата:
http://github.com/arrai/tiawps/blob/...pter/decrypt.c Если я правильно понял с примера, то нужно дополнительно декриптовать еще 1 байт, или же сразу нужный размер. Код:
private static void ProcessWorldPacket(byte[] data, Direction direction) { int i = 0, size = 0, opcode = 0; bool isLarge = (data[i] & 0x80) != 0; int HEADER_LENGTH = isLarge ? 4 : 5; if (direction == Direction.SERVER) { Crypt.DecryptServer(data, 0, HEADER_LENGTH); } else { HEADER_LENGTH += 2; Crypt.DecryptClient(data, 0, HEADER_LENGTH); } if (isLarge) size = data[i++] & 0x7F; size = (size << 8) | data[i++]; size = (size << 8) | data[i++]; for (int j = 0; j < HEADER_LENGTH - 2; j++) opcode |= ((0xFF & data[i++]) << (8 * j)); size += (2 + (isLarge ? 1 : 0)); if (size > data.Length) { Console.WriteLine("ERROR: {0} Size = {1} > packet.Length = {2}", direction, size, data.Length); return; } using (BinaryReader reader = new BinaryReader(new MemoryStream(data))) { reader.BaseStream.Position += HEADER_LENGTH; byte[] newData = reader.ReadBytes(size - HEADER_LENGTH); HandleWorldPacket((WorldOpcodes)opcode, newData); Console.WriteLine("{0}:\tHeader = {1}\tPacket = {2}\t{3}\tOpcode: {4}", direction, size, data.Length, data.Length == size ? "OK" : "REUSE", (WorldOpcodes)opcode); if (size < data.Length) { ProcessWorldPacket(reader.ReadBytes(data.Length - size), direction); } } } Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Да и с моим ничтожным опытом в программировании (чуть больше года на любительском уровне и когда есть время) наверное не постичь тайну аутеффикации, так как надо делать хук (подменить ИП сервера в памяти), надо еще чего-то и еще... Ладно хватит писать, пойду работать... |
||||||
01.06.2010, 15:30 | #2 | ||
Пользователь
Регистрация: 22.03.2010
Сообщений: 41
Сказал(а) спасибо: 7
Поблагодарили 25 раз(а) в 15 сообщениях
|
Цитата:
в самом простейшем случае - использовать готовый LSP-редиректор (proxycap, например) для переброса всех соединений wow на свой сервер. всё. никаких подмен в памяти, никаких собственных аутентификаций. единственная заморочка, которая там есть - это обработка второго соединения и ключей для него. я так и не осилил ее - все эти новые сиды\хэши, осн.\доп. ключи и т.п. и откатился простому и тупому чтению готового arc4-состояния из памяти. Цитата:
единственное место где мне встречались large пакеты - это SMSG_COMPRESSED_UPDATE_OBJECT при телепорте (или логине, что по сути одно и то-же) в даларан, в час пик, когда там бегают толпы народа. все данные по этим разодетым и сверкающим "объектам" близы почему-то отсылают одним большим пакетом. пока кроме этого места я больше ни одного large пакета не видел. Последний раз редактировалось abdula123; 01.06.2010 в 15:50. |
||
Пользователь сказал cпасибо: | Konctantin (01.06.2010) |
01.06.2010, 16:37 | #3 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
|
01.06.2010, 17:18 | #4 | |||
Пользователь
Регистрация: 22.03.2010
Сообщений: 41
Сказал(а) спасибо: 7
Поблагодарили 25 раз(а) в 15 сообщениях
|
Цитата:
наверное ачивок мало Цитата:
Цитата:
и потом использовать эти ключи для расшифроки пакетов (и обратной зашифровки - если требуется модифицировать пакеты на лету или добавлять\удалять их) Последний раз редактировалось abdula123; 01.06.2010 в 17:26. |
|||
01.06.2010, 17:53 | #5 | |
Kobold Dev
|
Цитата:
нопомто с батлой мы прокси не могли перенаправить верно перешли на тиавапс уже теость с ключем декомпилировали но теперь опять в ОПе -) надежда опять на прокси вот что нам не удалось просто после батлы [11:18] <Kosuha> мне нужно всеголишь реалм лист [11:18] <Kosuha> перекинуть [11:18] <Kosuha> т.е. это стадия логин сервера [12:55] <Kosuha> будет работать в области логгера и прокси [12:55] <Kosuha> там с прокси я бы щас бился [12:55] <Kosuha> а выяснил [12:55] <Kosuha> что изза ИП клиент полюбому рвёт коннект [12:56] <Kosuha> и реалм лист подменяют как что прослушивая Winsock [12:56] <Kosuha> я в эти дебри ещё никогда не лазил даже рук не хватате уна спросто -)) остлись просто " у самовара я и моя бабка"
__________________
Вообще-то я не специалист по этим гравицаппам... Последний раз редактировалось Neverdie; 01.06.2010 в 17:55. |
|