|
Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером |
|
Опции темы | Поиск в этой теме | Опции просмотра |
20.07.2010, 18:34 | #1 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Централизованый формат снифов
Редакция от 31 июля 2011, 13:13, версия 3.1
Редакция от 25 июля 2010, 21:00, версия 3.0
Предложения SnifferID: Код:
0 - Wad // 2005 и ранее 1 - Nomad // 2005 и ранее 2 - WoWCore // 2006 3 - Mangos (TOM_RUS) // 2006 4 - User456 // 2007 5 - Delfin // 2007 6 - Burlex // 2007 7 - WCell // 2008 8 - Kobold // 2009 9 - abdula123 // 2010 10 - Konctantin/LordJZ // 2010 11 - Йоха // 2010 Последний раз редактировалось RomanRom2; 07.08.2011 в 21:24. |
25.07.2010, 17:27 | #41 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
|
25.07.2010, 17:43 | #42 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
коллеги, а для чего в снифе девелоперс дата ?
|
25.07.2010, 17:45 | #43 | |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
И так, на последний момент:
Заголовок файла: Код:
byte signature[3]; // 'PKT' | 'RAW'. word version; // == 0x0003 - для версии 3.0. byte snifferID; // Распределить уникальные номера. — это надо решить. uint build; // Номер сборки клиента, обратите внимание, тип uint (4 байта). — зачем 4 байта? byte language[4]; // Язык клиента: 'ruRU', 'enGB' и т.д. byte sessionKey[40]; // Ключ сессии, для PKT не используется и может быть заполнен как угодно (лучше нулями). byte OptionalHeaderLength; byte optionalHeader[]; Код:
(byte)Direction; // 0xFF — серверный, 0xCC — клиентский (uint)UnixTime (uint)TickCount (uint)OptionalHeader.Length (uint)Data.Length (byte[])OptionalHeader (byte[])Data — предлагаю именно такой порядок: длина DD, длина данных, DD, данные. Данные включают в себя опкод, выравненный до 32 бит. ____________ Цитата:
|
|
25.07.2010, 17:49 | #44 |
Новичок
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
|
Предлагаю так же учесть доводы user456 насчет указания направления пакета, и расширить это поле с 1 до 4 байт, заодно, сделав размер заголовка чанка кратным 4:
Код:
struct ChunkHeader { char direction[4]; // 'RECV' и 'SEND', либо 'SMSG' и 'CMSG', либо то, что вы предложите. uint unixTime; uint tickCount; uint optionalDataLength; uint dataLength; }; // sizeof(ChunkHeader) == 4 + 4 + 4 + 4 + 4 = 20 байт (align == 1) Сразу после ChunkHeader следуют optional-данные, затем данные пакета. Последний раз редактировалось VDm; 25.07.2010 в 17:54. |
25.07.2010, 17:52 | #45 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
еще одно из доводов user456:
цитирую: я бы выкинул из каждого пакета и UnixTime есть стартовый и тиккаунты |
25.07.2010, 17:52 | #46 |
Новичок
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
|
|
25.07.2010, 17:53 | #47 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
по поводу byte SnifferID - иожет сделать не 1 байт, а немного длинней, и хранить там символьное представление, например "wcore"
Просто придумывать номера ID - это еще 1 стандарт, кто его будет поддерживать ? а так каждый сниферописатель придумает какое-нибудь символьное сокращение для своего детища Последний раз редактировалось Йоха; 25.07.2010 в 17:57. |
25.07.2010, 18:08 | #48 | ||||
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
Цитата:
Цитата:
Цитата:
Цитата:
только хочу еще добавить, что длина данных содержит в себе 4 байта опкода (который выравнен до 4 байт). |
||||
25.07.2010, 18:29 | #49 | |
Новичок
Регистрация: 31.03.2010
Сообщений: 22
Сказал(а) спасибо: 2
Поблагодарили 23 раз(а) в 8 сообщениях
|
Цитата:
struct main_hdr{ int sign; uint pkt_hdr_offset; uint pkt_hdr_len; uint data_offset; ... } struct pkt_hdr_node{ int len; char [50] name; } потом с адреса pkt_hdr_offset забиваеш массив и получаеш свои типы, можно по name разбор делать или добавить константы типа. Получится структура велосипеда, который давно изобрели в каком-нибудь DBase. Один фиг через год станет понятно что UnixTime в каждом пакете это мусор (достаточно тиккаунтов на четверо суток в миллисекундах и даты создания файла или одного time в хедере) |
|
25.07.2010, 18:43 | #50 |
Новичок
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
|
|
25.07.2010, 19:19 | #51 |
Новичок
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
|
По историческим соображениям, описанным здесь: http://www.gotwow.ic.cz/
Пытаемся составить список SnifferID (SnifferID получается так же при конвертации данных от команды, не имеющей совместимости с данным форматом): Код:
0x00 - Wad // 2005 и ранее 0x01 - Nomad // 2005 и ранее 0x02 - WoWCore // 2005 0x03 - Mangos (TOM_RUS) // 2005, намеренно не отделяю по времени TOM_RUS от Mangos 0x04 - User456 // 2006 0x05 - Delfin // 2006 0x06 - Burlex // Хотя начинал он явно раньше, я точно не знаю, когда. 0x07 - WCell 0x08 - LordJZ 0x09 - Йоха // 2010 0x0A - abdula123 // 2010 Последний раз редактировалось VDm; 25.07.2010 в 20:00. |
25.07.2010, 19:49 | #52 |
Новичок
Регистрация: 31.03.2010
Сообщений: 22
Сказал(а) спасибо: 2
Поблагодарили 23 раз(а) в 8 сообщениях
|
Да просто поле символов 25 оставь и все. А там уже WoWCore v 3.xx внутри или типа того.
P.S. бурлеха еще забыл. Последний раз редактировалось user456; 25.07.2010 в 19:56. |
25.07.2010, 19:59 | #53 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
позволил себе обновить первый пост в связи с последними изменениями.
я думаю что бурлекс меньше всего будет этому придерживаться и что ему глубоко фиолетово на все это. Последний раз редактировалось RomanRom2; 25.07.2010 в 20:05. |
2 пользователя(ей) сказали cпасибо: | Konctantin (25.07.2010), LordJZ (25.07.2010) |
25.07.2010, 20:08 | #54 | |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Цитата:
|
|
25.07.2010, 20:32 | #55 |
Новичок
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
|
|
25.07.2010, 20:33 | #56 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
нет. раньше мы этот SnifferID использовали как идентификатор снифера. у нас их тьма тараканья ведь
а сейчас предлагается использовать как идетификатор команды, а то 255 значений для всех всевозможных сниферов может когда нибудь не хватить. |
25.07.2010, 21:00 | #57 |
Новичок
Регистрация: 31.03.2010
Сообщений: 22
Сказал(а) спасибо: 2
Поблагодарили 23 раз(а) в 8 сообщениях
|
Ну а признак что сниф не левый с эмулей? А то мы с ромкой в аське вроде со своими мыслями согласились...
И вопрос, обсуждаемый между собой, но не вошедший сюда: 1. снифами скорее всего делиться никто не будет, не только от жадности но и чтобы не получать баны 2. отсюда мы вроде как согласились что если что и шарить, то сразу пакеты респонсов и подобного 3. откуда следует что инфа должна быть заранее обработана и обсуждение формата пакетов raw вроде бури в стакане воды Итого: смысл обсуждать? Только в случае одинаковых на всех обработчиков сниффов. У нас с ним по-любому будут разные. Он заряжает тулзу, которая буквами выводит "ну ты и крут, еще 500 айтемов". Я если тащу, так вытаскиваю всю нужную именно мне инфу (последовательно обрабатывая можно много чего еще вытащить). Даже не юзаю тиккаунты потому что в каждом пятом пакете они есть. |
25.07.2010, 21:32 | #58 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
вовк, на самом деле ситуация немного проще:
во первых, снифы публично лучше не выкладывать, это да. этого никто и не делает. все обмены снифами происходят так или иначе - приватно. например мне заливают на фтп, я тут же их сливаю и удаляю. или через файловый обменник, ссылка которого передается опять же почти приватно - через аську, через irc, где ее получат только узкий круг людей. так что с этим проблем вроде как нет и врят ли будут. во вторых, обычно происходит как: я даю снифер "своим людям", они снифают. таких "своих людей" может быть несколько и я точно уверен, что они снифают офф, что снифер не утекает. и так думаю делают все разработчики. следовательно можно быть в некоторой степени уверенным, что снифы не с левые с пираток всяких. во третьих, жадничать снифами - это детский сад. я уже третий год пытаюсь донести до людей, что снифы сами по себе ценности никакой не имеют. ценность имеет инфа из них. точнее инфа, умело использованная в твоих проектах. вот это и есть конкурентная инфа. будем рассматривать вопрос как конкурентный, у нас ведь тут у всех соревновательный дух через чур развит. т.е. идея вот в чем: - ну что такого прятать в снифе, что можно взять снифер и отснифать еще раз? т.е. если у тебя есть снифф входа на батлграунд, а у меня его нет, то рано или поздно я это тоже отснифаю. - тоже самое и с респонсами. ну нет у меня сейчас в базе итема с номером 77777, а у тебя есть. ну отснифаю я его все равно, никуда он не денется вот формат опкодов - наверное можно назвать конкурентными знаниями. т.е. к примеру у одних разработчиков не разобран какой то опкод до конца и недостающий функционал они делают согласано своей самодеятельности. что приводит к ухудшению качества продукта в целом. тут да, соглашусь. так что респонсы и всякие А9 (заселенку) можно легко и смело шарить. т.е. писать такой тул, которому скармливается снифф и который оставляет вот эти пакеты. т.е. пакеты, которые явно не спалят аккаунт, пакеты, в которых отсуствует гуид перса, его имя и т.п. в этом нам нужно соревноваться, я считаю. т.е. КАК СДЕЛАНО, а не СКОЛЬКО. но шаринг снифов - это всего лишь вопрос времени, мне кажется. рано или поздно все поймут, что от того что у тебя прямо сейчас есть в базе итем 77777 или стоит моб в какой то локации, а у меня нет - не делает твой сервер "круче", назовем это так. но это все конечно возможно не случится никогда более того, раз уж у нас сложилась такая ситуация, что сниферами занимается все несколько человек и мы все друг друга знаем - то между нами можно смело этими снифами обмениватся. ничего страшного не произойдет. вовка, смотри глубже. именно благодаря единому стандарту мы делаем первый шаг к объединению. притчу про веник конечно все знают, правда я не очень сильно верю в настоящее наше объединение. но кто знает... кто знает так что буря в стакане возможно и выглядет утопичной, но возьми например jpeg, или там mp3. все по своему и по разному их "обрабатывают". paint по проще, photoshop по круче. ну и что. так что я считаю все равно это создаст некоторое удобство. время покажет, какое именно. Последний раз редактировалось RomanRom2; 25.07.2010 в 21:36. |
2 пользователя(ей) сказали cпасибо: | Konctantin (25.07.2010) |
25.07.2010, 22:23 | #59 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
сами снифы, не представляют никакой угрозы, так как они по сути являют собой бинарные файлы, а чтоб их читать, надо специальный "инструмент" и знания.
А так, он совершенно бесполезен (пример, wdb-cache, на данный момент мало кто его может прочитать). |
25.07.2010, 23:21 | #60 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
все верно, но уверен, у близзов эти инструменты найдутся, если им ну очень зачется узнать кто снифал тот снифф, который попал им в руки и забанить наглеца
|
25.07.2010, 23:44 | #62 |
Пользователь
Регистрация: 20.06.2010
Сообщений: 42
Сказал(а) спасибо: 4
Поблагодарили 5 раз(а) в 5 сообщениях
|
а смысл этого всего если не выкладывать снифы тоннами в паблик? да и желательно сам снифер давать в паблик, иначе тонн снифов небудет.
у меня сейчас все просто, читаю уже декодированные данные из памяти клиента и складываю в файл.... ничего более хитрого пока и не нужно было |
25.07.2010, 23:58 | #63 | |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
Цитата:
ну а в снифах, как я уже и говорил, куча инфы, связанной с твоим персом. при желании можно вычислить тебя и забанить. опять же повторюсь - при желании. если помните может, мы выкладывали в паблик много снифов во времена 2.4.х, и даже сниферы выкладывали. никто что то не забанил... хмм... и обработчик второго соединения нашел? у нас что то не получилось. наш инжектор видит только первую сессию. |
|
25.07.2010, 23:59 | #64 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
смысл есть всегда, давайте простой пример:
идет обсуждение чего-то, надо пример сниффа с оффа, вы выкладываете этот снифф, и все, кому надо смогут прочитать его, и можно на основании конкретных данных вести конструктивную беседу. |
26.07.2010, 00:45 | #65 |
Пользователь
Регистрация: 20.06.2010
Сообщений: 42
Сказал(а) спасибо: 4
Поблагодарили 5 раз(а) в 5 сообщениях
|
Как Ромка уже и сказал, в снифах самое ценное данные для респонзов и заселения.
И насчет общего вклада в единое целое, раз уж так опасно выкладывать снифы, можно выкладывать данные. Сделать единую базу с официальными данными без custom-полей и привязки к конкретному проекту. И парсилку этой базы со снифов можно написать и централизованно. А мелкие снифы определенных механик особо и не нужно выкладывать в паблик, каждый сам может отснифать, да и устаревают они быстро. |
26.07.2010, 07:30 | #66 |
Гость
Сообщений: n/a
|
А как насчет англоязычного коммунити? До них эту идею донесли или они сами по себе как обычно?
|
26.07.2010, 08:23 | #67 | |
MaNGOS Dev
Регистрация: 08.03.2010
Адрес: Ханты-Мансийск
Сообщений: 28
Сказал(а) спасибо: 27
Поблагодарили 13 раз(а) в 8 сообщениях
|
Цитата:
и если, как говорит Авен, "сделать единую базу с официальными данными без custom-полей и привязки к конкретному проекту" они всё равно узнают про эту базу, им будет выгодно делать такой же формат снифов.. правда нужно будет формат задокументировать на англицком кстати забыли в этом списке про кобольд Код:
0x00 - Wad // 2005 и ранее 0x01 - Nomad // 2005 и ранее 0x02 - WoWCore // 2005 0x03 - Mangos (TOM_RUS) // 2005, намеренно не отделяю по времени TOM_RUS от Mangos 0x04 - User456 // 2006 0x05 - Delfin // 2006 0x06 - Burlex // Хотя начинал он явно раньше, я точно не знаю, когда. 0x07 - WCell 0x08 - LordJZ 0x09 - Йоха // 2010 0x0A - abdula123 // 2010 |
|
26.07.2010, 09:36 | #68 |
Новичок
Регистрация: 25.05.2010
Сообщений: 11
Сказал(а) спасибо: 1
Поблагодарили 14 раз(а) в 5 сообщениях
|
|
26.07.2010, 20:49 | #69 | |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
Цитата:
кажется в wcell один (или несколько) разработчиков русские, эмигранты. нет? разберуться, чай не шучу. мы разве исторический список эмуляторов составляем? в таком случае, что мангос, что тринити, что кобольд, что вовд, что штормкрафт - одна фигня. а еще забыли какого нить wowwow, да много кого или все же список команд разработчиков, написавших снифер и использующих его? я вот уже не совсем уверен, что список актуальный. tiawps чей? sniffitz чей? на самом деле это не важно, список чистая формальность. главное - формат разработали. и лично мне он очень даже нравится. и как прется с него WoWCore Team - тоже не пересказать )) и самое главное - мы его ВМЕСТЕ сделали. и что ж - кажется можно считать, что обсуждение закончено, кажется добавить уже нечего. можно ускорить процесс - можно считать что документ разработан и начать его ревью. скажем до конца месяца, до 31 июля. прошу ревьюверов еще раз найти немного своего драгоценного времени и взглянуть на описание. хорошенько подумать и выдать свой конклюжн в виде "принято/не принято" и дать мне знать об этом любыми способами. сюда на форум, в личку, в аську, в ирц, в почту, по телефону, лично, не знаю я буду обновлять этот пост. напоминаю список ревьюверов: Последний раз редактировалось Konctantin; 27.07.2010 в 12:28. |
|
26.07.2010, 21:00 | #70 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Они же другие форматы используют (sqlite, xml)
P.S. Может действительно использовать использовать не один байт на идентификатор сниффера, а несколько, или может вообще строку? Последний раз редактировалось LordJZ; 26.07.2010 в 21:02. |
26.07.2010, 21:07 | #71 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
ну понятно что другие. все мы каждый свои форматы используем. для чего ж мы тут тогда все собрались...
пусть переделывают строку, если хотите - пишите в DevelopersData. копирайты там вские, название снифера и его версию, билд, свн ревижн, точное время создания... вощем чо хотите Последний раз редактировалось RomanRom2; 26.07.2010 в 21:27. |
26.07.2010, 21:26 | #72 | |
MaNGOS Dev
Регистрация: 08.03.2010
Адрес: Ханты-Мансийск
Сообщений: 28
Сказал(а) спасибо: 27
Поблагодарили 13 раз(а) в 8 сообщениях
|
Цитата:
у кобольдов свой формат снифов это 100%.. и снифер вроде свой был. Месяца полтора к ним не заходил, не знаю как у них сейчас обстоят дела)) |
|
26.07.2010, 22:04 | #73 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
В таком случае дополнений/предложений не имею.
|
26.07.2010, 22:18 | #75 | |
Новичок
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
|
Цитата:
До тех пор, пока формат окончательно не утвержден, в списке могут быть подвижки (с поправкой на "давность" команды), после утверждения данный список может быть увеличен только путем добавления номера в конец. |
|
26.07.2010, 22:21 | #76 | |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
Цитата:
|
|
26.07.2010, 22:25 | #77 | |
Новичок
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
|
Цитата:
На фоне этого, смысл расширять snifferID теряется. Мы уже говорили, что практическое значение snifferID крайне невелико, каждая команда разработчиков имеет полную свободу самовыражения в optionalHeader и optionalData. Последний раз редактировалось VDm; 26.07.2010 в 22:28. |
|
27.07.2010, 07:54 | #78 | |
Гость
Сообщений: n/a
|
Цитата:
Тут в чем дело.. К нам именно по этому сабжу никаких предложений не поступало. Да и нужно ли это им? ) Эта тема для Мангос и Ко или же для всего эму коммунити? Я думаю все же первое.. |
|
27.07.2010, 11:04 | #79 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
никаких замечаний/возражений не имею. По большому счету мне вообще все равно какой формат у файлов будет, переписать свой софт под поддержку формата 3.0 - не проблема.
Главное во всем этом то, что люди будут придерживаться некоего единого стандарта, а уж какой там сам стандарт - это не столь важно. |
27.07.2010, 12:26 | #80 | ||
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Цитата:
Цитата:
Перенес список ревьюверов в первый пост. Последний раз редактировалось Konctantin; 27.07.2010 в 12:30. |
||