Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как опросить игровой сервер?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Администрирование] >> Как опросить игровой сервер?
Имя
Сообщение << Старые топики   Новые топики >>
Как опросить игровой сервер? - 2011-12-02 07:51:30.813333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Здрасте!
Я так понял что существует какой-то универсальный протокол, с помощью которого можно опрашивать сервера игр. Конкретно интересует игра "АрмА 2". Поделитесь, пожалуйста, информацией, если кто знает?
Post #: 1
RE: Как опросить игровой сервер? - 2011-12-02 20:06:26.286666   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Что значит в твоём понимании "универсальный протокол"? Что он должен делать? Или точней, для чего он служит?
Post #: 2
RE: Как опросить игровой сервер? - 2011-12-02 20:51:37.280000   
namepunk

Сообщений: 2732
Оценки: 184
Присоединился: 2009-09-15 13:35:36.866666
SNMP - универсальный протокол. Хотя не думаю что ты имел это в виду…
Post #: 3
RE: Как опросить игровой сервер? - 2011-12-03 13:13:16.353333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666

quote:

ORIGINAL: zzsnn

Что значит в твоём понимании "универсальный протокол"? Что он должен делать? Или точней, для чего он служит?

Ну какой то стандартный набор команд, с помощью которых можно обращеться к серверу и получать от него нужную информацию.
Post #: 4
RE: Как опросить игровой сервер? - 2011-12-03 15:08:06.756666   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Что ты хочешь узнать от сервера, обратившись к нему? Конкретней.
Post #: 5
RE: Как опросить игровой сервер? - 2011-12-04 16:40:48.556666   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Все подробности о текущей игре. Название миссии, ники игроков, кто сколько чего уби/умер и т.д. и т.п.
Post #: 6
RE: Как опросить игровой сервер? - 2011-12-04 20:49:50.276666   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Тогда тебе нужно получить к данному серверу доступ, т.е. взломать его.
Для взлома серверов не существует универсального метода и способа.
Post #: 7
RE: Как опросить игровой сервер? - 2011-12-04 23:59:20.590000   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Это мой сервер)
Но даже если бы он был чужой - его всёравно можно мониторить. Вот, например, на сайте http://arma2.swec.se/server/list такой мониторинг осуществляется по всем обнаруженым сервакам Армы-2 в сети. В этот список попал и мой сервер. Мне приходится скачивать у них XML-файл с инфой о моём сервере и размещать её у себя на сайте. А хочится миновать arma2.swec.se и опросить себя самому.
Post #: 8
RE: Как опросить игровой сервер? - 2011-12-05 06:49:33.253333   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Ну если сервер твой и ты имеешь к нему полный доступ, как администратор, то у тебя и так достаточно прав, что бы настроить его так, что бы он давал тебе информацию о своём состоянии хоть по электронной почте, хоть давая сообщения в другом виде.
Как это сделать? Поверь не "универсальным протоколом", а настройками сервера. Если его не ты ставил и настраивал - тогда изучай работу и настройки своего сервера и настраивай, как ты считаешь нужным.
Post #: 9
RE: Как опросить игровой сервер? - 2011-12-05 09:07:11.850000   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Да нет, как раз универсальный метод. Ведь я же не делал каких то спецальных настроек для arma2.swec.se, а он меня читает.
Вся установка и настройка сводилась к тому что я скопировал из винды всю директорию с установленой игрой в линукс(debian), добавил туда линуксовый файл программы сервера, ну и запустил его с парочкой параметров. В конфиге настройки только касаемо игры. Один из параметров запуска -netlog - он заставляет сервер вести лог игры в файл net.log, который я хз как расшифровать. В этом файле тоже, каким то неизвестным мне языком, сохраняется куча полезной информации - за сутки больше 30 мегабайт набегает. На сайте разработчика игры(http://community.bistudio.com/wiki/Armed_Assault:Dedicated_Server#Linux) описание параметра такое:-netlog - command to record traffic from the game server in BI format (requires 1.02 and above)Чё за BI format и как его читать - не известно.
Да и не совсем об этом речь. Опять же сервис arma2.swec.se - он же не видит этот мой лог, а напрямую с сервером общается. Значит всётаки существует какой то способ. При чём, я слышал, что этот способ достаточно универсальный и подходит для многих-многих игр.
Post #: 10
RE: Как опросить игровой сервер? - 2011-12-05 09:36:11.606666   
Barkass$

Сообщений: 1854
Оценки: 40
Присоединился: 2008-11-11 12:19:45.216666
Я не думаю то что на ксакепе много людей, разбирающихся в серверных онлайн играх, а именно в настройках.
Давно тестил у себя на машине л2. Заливал сервер, занимался настройками, но это далеко не ушло, ибо делал это в целях собственного эксперемента. Так о чем я … Тебе надо курить мануалы, связанные с настройками данной игры. Где их взять я не знаю, и не хочу знать. Чья она? Европа? Корея? Вот на этих языках и выдерай информацию.

p.s. Таже л2, когда читаешь логи, их конечно обрабатывает сервер, но только через GYP.
Post #: 11
RE: Как опросить игровой сервер? - 2011-12-05 11:39:38.853333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
quote:

Чья она? Европа? Корея? Вот на этих языках и выдерай информацию.
Да не, я имею ввиду програмный язык какой то. Вот, например, фрагмент: 0.000: NetLogger: start - Sun Dec 4 23:39:33 2011 0.000: Clk(1000000000) 4.935: ArmA2 version: 1.10 4.937: 23:39:37 Dedicated host created. 5.292: Par: 1.1,65535,1490,90,3,400000,2,32000,8000,2000000,400,0,6000000,1.040,1000.0,0.980,3000000,3000000,65536 5.292: Par: 2.50,150000.0,400,15,0.1500,0.1000,0.0500,0.0200,2.20,30000.0,1.80,20000.0,1.40,10000.0,1.10,3000.0,1.40,1.20 5.292: Par: [0.900,20.0] [0.980,10.0] [1.000,0.0] [1.020,20.0] [1.100,40.0] [1.300,50.0] 5.292: Fac:cp(2304,0,131070,124928) 5.304: Ch(0):open(127.0.1.1:2304 &lt;-&gt; 255.255.255.255:0) 5.304: Pe(0):succ(127.0.1.1:2304) 5.304: Pe(0):list(2304) 5.305: Fac:cp(2302,0,131070,124928) 5.305: Ch(1):open(127.0.1.1:2302 &lt;-&gt; 255.255.255.255:0) 5.305: Pe(1):succ(127.0.1.1:2302) 5.305: Pe(1):srv 5.305: Pe(1):list(2302) 5.305: Pe(1):srv(2302,'Имя сервера',623191333) 7.603: Pe(0):cli 7.618: 23:39:39 BattlEye Server: Initialized (v1.126) 7.626: 23:39:39 Host identity created. 21.456: Ch(1):st(250,250,0,250,250,0,0,3,0/0,0,-1.00,0/0,0,-1.00,0,0) 21.477: Ch(0):st(250,250,0,250,250,0,0,3,0/0,0,-1.00,0/0,0,-1.00,0,0) 24.814: Ch(0):~cli 25.315: Pe(1):~srv 25.316: Ch(0):close 25.316: Ch(0):~(0,0,0,0,0) 25.320: Pe(0):stopl(2304) 25.320: Pe(0):~(0,0,ffffffff,2304,0) 25.320: Ch(1):close 25.320: Ch(1):~(0,0,0,0,0) 25.323: Pe(1):stopl(2302) 25.323: Pe(1):~(0,0,ffffffff,2302,0) 25.568: 23:39:57 Сначала то вроде понятно, а дальше побежали циферки, которые и составляют 99% лога…
Post #: 12
RE: Как опросить игровой сервер? - 2011-12-05 18:46:03.880000   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Читай мануалы.
Post #: 13
RE: Как опросить игровой сервер? - 2011-12-05 22:01:15.433333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Да я их найти не могу. Это ж не PHP, мануалами по которому кишит интернет)
Post #: 14
RE: Как опросить игровой сервер? - 2011-12-06 06:46:13.736666   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
А что ты предлагаешь нам изучить мануалы по игровым серверам, потом разобраться с твоим сервером конкретно и потом объяснить тебе?
Нет проблем. Сколько ты готов заплатить, что бы кто-то из нас выполнил бы эту работу для тебя?
Post #: 15
RE: Как опросить игровой сервер? - 2011-12-06 07:01:03.523333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Ни сколько. Мне не нужно что бы за меня кто то выполнял работу.
Мне достаточно ссылки на мануал по этой теме от того кто действительно в курсе что это такое и для кого это займёт(размещение здесь ссылки на тот самый, нужный мне, мануал) одну минуту.
Напомню - вопрос был:
quote:

Поделитесь, пожалуйста, информацией, если кто знает?
, а не "давайте ка вы там всё разузнайте, и мне, пожалуйста, сделайте".
Post #: 16
RE: Как опросить игровой сервер? - 2011-12-06 18:46:34.630000   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Что за сервер у тебя на котором крутится всё твое хозяйство? Не нужно описывать его, типа зеленый, на второй полке стоит, пирожками пахнет, линуксовский, на дебиане и т.д. Конкретно название. Например Apache или какой-то другой?
Post #: 17
RE: Как опросить игровой сервер? - 2011-12-07 01:35:52.136666   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Существует игра АрмА2. Она сетевая. Соответственно - есть клиентская версия игры, а есть программа-сервер, которая обеспечивает сетевую игру. Она(моя программа-сервер) доступна, в данном случае, по ip89.169.195.33 порт 2302. Передо мной стоит задача - обратиться по этому адресу и этому порту, видимо по http, или, возможно, udp, или как то ещё, и с помощью, неизместного мне, набора команд опросить свою програму-сервер.
Post #: 18
RE: Как опросить игровой сервер? - 2011-12-07 06:47:47.560000   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
quote:

а есть программа-сервер, которая обеспечивает сетевую игру.

На чем стоит программа-сервер? Не название оси, а название сервера. Примеры из Википедии:
"На август 2011 года наиболее распространённым веб-сервером, занимающим более 65 % рынка[1], является Apache — свободный веб-сервер, наиболее часто используемый в UNIX-подобных операционных системах;
Некоторые другие известные веб-серверы:
IIS от компании Microsoft, распространяемый с серверными ОС семейства Windows
nginx — свободный веб-сервер, разрабатываемый Игорем Сысоевым с 2002 года и пользующийся большой популярностью на крупных сайтах[2], [3]
lighttpd — свободный веб-сервер
Google Web Server — веб-сервер, разработанный компанией Google
Resin — свободный веб-сервер приложений
Cherokee — свободный веб-сервер, управляемый только через web-интерфейс
Rootage — веб-сервер, написанный на java.
THTTPD — простой, маленький, быстрый и безопасный веб-сервер"
Post #: 19
RE: Как опросить игровой сервер? - 2011-12-07 07:39:27.536666   
Barkass$

Сообщений: 1854
Оценки: 40
Присоединился: 2008-11-11 12:19:45.216666
Ну так очевидно, ватс. Как сказал zzsnn, тебе нужно отталкиваться от "веб-сервера", т.е. искать уже мануалы по работе с ними, а не с самой игрой. Я просто не знаю как серверная часть твоей игры работает с логами. Тут 2 вариант, в любом случае их обрабатывает сервер, но вот дальше все дело в том что выводить эти самые логи можно как серверной частью игры, так и самим сервером. Допустим возьму опять же Л2. У неё идет такая система что, независимо от того какой стоит веб-сервер, логи можно читать с помощью GYP. GYP это спецально вложенная часть программы, впаянная уже в серверную часть игры, и именно через него можно прочитать логи у л2. Они приходят на сервер тоже в "какозябрах" типа координат X 16234 Y 84322 ^%mpainset - это обычное условие, если клиент, жмякнул на точку в карте. И это в этом случае уже нужно курить мануалы связанные с самой игрой и её настройкой на сервере и правильным логированием. Логи в любом случае будут отображаться "хренова" и "нечитабельно". Так что в любом случае все упирается в знания.

p.s. Например, когда я увидил лог, если клиент использует какую-то багу, то был в шоке от кол-ва строк. А еще больше я был в шоке когда узнал, что больше 70% информации - просто мусор. Например, $$ - это значит открытие двери, а вот $$$ - это пустой байт который вообще нахрен не нужен, а там порой достигало до 50 таких символах и каждый что-то значил. А все это знаешь почему? Потому что клиент-сервер не офицальный, и в них чаще всего необъятное кол-во косяков.
Post #: 20
RE: Как опросить игровой сервер? - 2011-12-07 11:25:28.133333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Да нет ни какого веб-сервера, ребят! Я же описал алгоритм установки в 10-м сообщении(от 05.12.2011 9:07:11) - там нет пункта "установил вебсервер и присобачил к нему серверную часть игры".
Есть компутер под моим столом, подключеный к интернету и есть програмулька-сервер, которая на нём запускается. Всё.
Очевидно есть ещё какой то сервис в интернете, к которому моя програмулька-сервер подрубается при старте и регестрируется там.
На компьютере же нет ни чего. Только ось, архив моих любимых порнофильмов и она - моя сервер Армы2.
Post #: 21
RE: Как опросить игровой сервер? - 2011-12-07 20:43:12.163333   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Хорошо, раз мы разговариваем на разных языках, то давай ты поступишь как нужно было поступить с самого начала.
Идёшь на оффициальный сайт игры. Ищешь там информацию по настройке и администрированию сервера игры. Если нет - обращайся к администрации сайта. Если ты поддерживаешь сервер их игры, то они должны быть заинтересованы тебе помогать. Это их деньги.
Post #: 22
RE: Как опросить игровой сервер? - 2011-12-08 00:21:44.936666   
namepunk

Сообщений: 2732
Оценки: 184
Присоединился: 2009-09-15 13:35:36.866666
Вполне может быть что на протокол опроса серверов нет открытой документации. Тогда есть другие способы.
Можно например отловить момент опроса твоего сервера в сниффере. В wireshark например. Посмотреть по какому протоколу они общаються. Какие запросы идут на сервер. В каком виде твой сервак отдает инфу. Далее написать прогу которая будет опрашивать твой сервер и отдавать инфу на твой сайт.
Можно также написать прогу которая будет автоматом выдирать инфу о твоем сервере с http://arma2.swec.se/server/list и сразу выкладывать на сайт. Второй способ наиболее простой.
Кроме того 5 минут гугла
http://forum.xakep.ru/m_1470939/tm.htm - !!!
http://goo.gl/XRu53
http://goo.gl/BxrVt
Post #: 23
RE: Как опросить игровой сервер? - 2012-01-04 20:18:28.523333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Пока поступил самым правельным способом от zzsnn - обратился к администрации ихнего сайта. Жду ответа.
А вот хотел бы немножко отвлечся и спросить namepunk по поводу wireshark. Я 2 раза ставил её себе на комп(Debian). Ставил не для отлова опроса сервера, а для отлова читерских действий на сервере. Так вот ента програмулька - она мне оба раза ломала GNOME. Сразу после установки - полный бардак в расположении рабочего стола, пунктов меню, и т.д., а после первой перезагрузки - Failed to load session "gnome". Не сталкивался с таким?
Понимаю, что вопрос больше относится к софту, или линуксу, и если сильно нарушаю феншуй форума - прошу извинения)
Post #: 24
RE: Как опросить игровой сервер? - 2012-01-04 22:33:59.980000   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Ты как устанавливал wireshark? Если из репозитария, то очень странно. Вот если не из репы, тогда могут быть проблемы.
Post #: 25
RE: Как опросить игровой сервер? - 2012-01-08 12:42:50.390000   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Первый раз:
apt-get install wireshark

Второй раз через какой то стандартный менеджер пакетов(не помню как он называется)

Оба раза обновлял ядро до 3.1.0-1 - может несовместимость какая….
Post #: 26
RE: Как опросить игровой сервер? - 2012-01-12 02:09:30.683333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666

quote:

ORIGINAL: namepunk

…Можно например отловить момент опроса твоего сервера в сниффере. В wireshark например…

Отловил момент с помощью wireshark. Протокол UDP. Вот что он спросил:char peer0_1[] = { 0xfe, 0xfd, 0x00, 0xe8, 0x39, 0x8b, 0x96, 0xa8, 0xc0, 0xff, 0x5d, 0xff, 0xff, 0xff, 0x01 };на что мой сервер выдал ему всю информацию. А вот как повторить за ним такой фокус - я не знаю)

Приведённый выше запрос я взал из "Follow UDP Stream" в виде "C Arrays".
В виде "Raw" этот запрос выглядит так:....9.....]....- что это за многоточия, интересно…)) Что то недорасшифрованое, видимо. При отлове читерских действий с помощью того же wireshark эти точки скрывают от меня очень много полезной информации. Нет ли способа их расшифровать?

"Hex Dump" этого запроса вот такой:00000007 fe fd 00 e8 39 8b 96 a8 c0 ff 5d ff ff ff 01 ....9... ..].... EBCDIC показывает так:...Y9.oy{.)....ASCII показывает то же что и "Raw"
Post #: 27
RE: Как опросить игровой сервер? - 2012-01-12 06:42:01.976666   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Блин. Вот что за манера, нахвататься верхов, а потом начинать на этом строить какие-то предположения.
Ты пишешь "Протокол UDP". А что это такое знаешь? Его структуру побитово знаешь? И как он инкапсулируется в IP? Побитово. Без этих знаний просто бесполезен твой набор шестнадцатеричных цифр.
Давай для начала ты переведёшь тот набор шестнадцатеричных цифр в битовый набор. А потом начинаешь искать в этом наборе заголовок IP, отделяешь его от заголовка UDP, выделяешь заголовок UDP, получишь данные, передаваемые в UDP, анализируешь их. Или может запрос идёт у тебя по протоколу ICMP? Тогда начинай анализировать полученные сообщения на основании структуры этого протокола.
Post #: 28
RE: Как опросить игровой сервер? - 2012-01-12 11:12:27.876666   
namepunk

Сообщений: 2732
Оценки: 184
Присоединился: 2009-09-15 13:35:36.866666
mr_Anderson
http://www.tamos.ru/htmlhelp/commview/pgen.htm
Post #: 29
RE: Как опросить игровой сервер? - 2012-01-12 12:53:51.126666   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
zzsnn, а я думал за меня всё это wireshark сделает…
Post #: 30
RE: Как опросить игровой сервер? - 2012-01-12 17:50:28.310000   
repeat

Сообщений: 7
Оценки: 0
Присоединился: 2012-01-12 17:08:01.690000
ох и любите же вы писать )))

wireshark сам всё сделает. отделит яйца от скорлупы и желток от бегка.

всё делается просто, но это не значит что это будет легко. оно только делается просто.

запускаешь сервер
выясняешь какие порты использует сервер (2302 там вроде, может быть и ещё порт для запроса как раз состояния сервера)
делаешь фильтр в wireshark на свой ip и на порты используемые сервером)
запускаешь игру
входишь в мультиплеер и делаешь несколько раз "Обновить"

выключаешь wireshark
и тут как раз начинается самое интересное - анализ трафика.

Спасибо шарку, он прекрасно отделил всё лишнее (заголовки), можно спокойно лицезреть протокол общения <сервер>–<игра>
после анализа тебе останется лишь написать клиент, которые будет посылать запрос на сервер и получать ответ, парсить его и выводить удобным для тебя способом.

бегло взглянув на протокол и не вдаваясь в подробности, нужно серверу по порту 2302 отправить запрос (там вроде 7 байт) получить от него видимо в первом пакете закодированные данные (могут содержать кол-во макс. игроков, версия сервера и т.п). ещё в ответ он присылает текстовую информацию - название сервера, какие моды установлены и ещё что-то. Всё это по UDP порту.
Post #: 31
RE: Как опросить игровой сервер? - 2012-01-12 21:01:32.410000   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Только не забудь сказать, что эти данные нужно ещё выделить в полученном пакете. А пакет состоит не из одних данных. А перед этим выловить этот пакет.
Post #: 32
RE: Как опросить игровой сервер? - 2012-01-12 22:16:04.280000   
repeat

Сообщений: 7
Оценки: 0
Присоединился: 2012-01-12 17:08:01.690000
quote:

ORIGINAL: zzsnn
Только не забудь сказать, что эти данные нужно ещё выделить в полученном пакете. А пакет состоит не из одних данных. А перед этим выловить этот пакет.

[sm=be.gif] omg. уже не раз написано, wireshark всё сам выделяет. говорю не понаслышке - сам им пользовался и именно так вытягивая протокол обмена для своего проекта.

">

p.s. wireshark хороший сниффер
Post #: 33
RE: Как опросить игровой сервер? - 2012-01-13 06:52:40.190000   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Выделять-то он выделят. Не всегда правда правильно, но не бывает идеала. Но вот коды сообщений по протоколу он ICMP он часто даёт неправильно. Так же анализ TTL нужно всё одно делать только головой.
А самое важное (!) wireshark не делает анализ самих передаваемых данных!
Теперь рассмотри имеющийся случай.
Ты октрыл пакеты в wireshark. И что? А как работает сервер и как его обмануть ясно из этого? Читаем из твоего сообщения выше:
"нужно серверу по порту 2302 отправить запрос (там вроде 7 байт) получить от него видимо в первом пакете закодированные данные (могут содержать кол-во макс. игроков, версия сервера и т.п). ещё в ответ он присылает текстовую информацию - название сервера, какие моды установлены и ещё что-то. Всё это по UDP порту. "
Я бы добавил бы к ещё несколько раз слово "вероятно". И вероятно порт 2302, и вероятно получим вероятно закодированные данные вероятно в первом пакете и т.д. вероятно.
Потому, что может один порт для передачи, а другой на приём, данные могут быть не в первом пакете, а 10 или в 20-м. А в первом данные о параметрах связи. И т.д.
Post #: 34
RE: Как опросить игровой сервер? - 2012-01-14 13:02:26.390000   
repeat

Сообщений: 7
Оценки: 0
Присоединился: 2012-01-12 17:08:01.690000
это уже анализ трафика. та самая нелёгкая часть о которой я упоминал.

хватит спорить, это не относится к теме и никак не помогает топикстартеру.
Post #: 35
RE: Как опросить игровой сервер? - 2012-01-14 16:20:43.883333   
repeat

Сообщений: 7
Оценки: 0
Присоединился: 2012-01-12 17:08:01.690000
некое общение с сервером установил.

первые 7 байт по udp на host, port отправляются в виде

fe fd 09 AA BB CC DD

09 - вид запроса.
AA BB CC DD - что-то вроде timestamp (время запроса) исчисляется в 0,001 секунды. приблизительное время когда писал сообщение = 40 85 6а 1с (в десятичной форме это 477070656, учитывая что изменяется число каждые 1/1000 секунды, это 477070,656 секунд, время работы операционной системы с момента запуска) это является маркером в запросе

в моём примере запрос будет
fe fd 09 40 85 6а 1с


в ответ получаем 18 байт

09 AA BB CC DD aa bb cc dd ee ff gg hh ii jj kk ll mm

09 AA BB CC DD - соответсвуют тем, что были в запросе
aa bb cc dd ee ff gg hh ii jj kk ll mm - некоторое число текстом (может быть с минусом)

в моём примере ответ получен
09 40 85 6f 1c 2d 33 35 31 30 34 37 38 35 37 00


aa bb cc dd ee ff gg hh ii jj kk ll mm = 2d 33 35 31 30 34 37 38 35 37 00 = -351047857 (в текстовом представлении)
переводим это число в 4-х байтное hex = EB136F4F
ВАЖНО! 4-х байтное число вставляется прямой записью

следующий запрос будет вида (маркер запроса, время, обновляется)

fe fd 00 0b 86 6f 1c eb 13 6f 4f ff ff ff 01

в ответ получаешь кучу окончательной информации (в основном текстовую), которую нужно разбирать. Она довольно лёгкая
начало у неё с маркером
00 0b 86 6f 1c "splatinum" 00 JJ 00 "gamever" 00 "1.60.87589" 00 "hostname" 00 "15thMEU(SOC) Realism Unit RECRUITING Server [ACE|ACRE|ACS]" 00 "mapname" 00 "fallujah" 00 "gametype" 00 "Coop" 00 "numplayers" 00 "14" 00 "numteams" 00 "0" и так далее

JJ - маркер. показывает номер пакета (нумерация идёт с 00). Если 7-й бит установлен, то это последний пакет
максимальный пакет где-то 1442 байта. если в этот пакет не уместились все данный приходит дополнительный пакет с оставшимися данными. начало у него так же содержит маркер указанный выше и splitnum.

например 00 0b 86 6f 1c "splatinum" 00 JJ 00 ………
JJ - тогда во втором последнем пакете JJ = 81 (hex)

После player_ и team_ идёт двай байта содержащие полное кол-во игроков или команд в текущем пакете (иногда именя игрока или комманды не умещается в пакете, тогда его часть остаётся в пакете и предпоследний байт не равен 00 и имя этого игрока или команды вставляется в следующий пакет полностью)

00 0b 86 6f 1c "splatinum" 00 JJ 00 ………
JJ - во втором дополнительном пакете если он последний JJ = 81 (hex)
Post #: 36
Страниц:  [1]
Все форумы >> [Администрирование] >> Как опросить игровой сервер?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.