Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Здравствуйте, друзья. Этой мой первый пост на этом форуме Предисловие:
В своей серии гайдов я постараюсь раскрыть тему Создания собственного сервера PointBlank (Иннова нервно курит в сторонке). Данный гайд выложен в тему для софта лишь из-за вложенной программы и её описания, но основной упор сделан именно на гайд, надеюсь сильно пинать не будете за это.
Начинем, PBConfigEditor - Final Version :
Программа позволяющая дешифровать/редактировать/сохранять главный конфигурационный файл клиента PB. Файл этот находится в папке: pb/config/lwsi_En.sif (О самом файле, о том зачем он нужен и что с ним делать я напишу ниже, а сейчас просто краткая инструкция по использованию программы):
На скриншотах под спойлером пошагово изображены все возможности данного софта:
Тут что нет спойлеров? Ну и ладно..
[Ссылки могут видеть только зарегистрированные пользователи. ]
Стартовое окно
[Ссылки могут видеть только зарегистрированные пользователи. ]
Выбор файла
[Ссылки могут видеть только зарегистрированные пользователи. ]
Открытие
[Ссылки могут видеть только зарегистрированные пользователи. ]
Декодинг
[Ссылки могут видеть только зарегистрированные пользователи. ]
Сохранение.
Собственно, это весь функционал этой небольшой программы.
* Программа написана мной, кому интересно - на C#, написал бы на JAVA но лень было заморачиваться и вручную создавать JFrame.
P.S. Вам, кстати, очень даже сильно повезло, ИМХО, без редактирования этого файла НЕЛЬЗЯ создать свой сервер, а в паблике аналогов этого софта нет (Я как бы намекаю, что хоть спасибку поставьте, порадуйте старика )
Теперь о самом lwsi_En.sif:
lwsi_En.sif - файл конфигурации для клиента PB (Любого), отвечает за хранения IP мастер-сервера (В нашем случае - сервера иннова системс).
Давайте посмотрим на декодированую версию файла:
PHP код:
## ServerList
[Default] UseServerSet = "RUSSIAN_LIVE" ; ServerList Set
## - начало файла, ### - конец файла.
[Default] - используемый по умолчанию сервер, в нашем случае это "RUSSIAN_LIVE".
Далее идёт конфиг самого сервера "RUSSIAN_LIVE", а именно:
ServerCount - Кол-во серверов, т.е. 1
И далее идёт IP первого и единственного сервера:
ServerIp00.
В принципе, можно указать несколько серверов, в этом случае нужно будет написать:
ServerIp01 и ServerCount = 2, но что это даст - не известно.
Теперь о том как это работает..
И так, при запуске клиента он получает значение логин/пароль (Например от Запускатора) и далее используя этот логин/пароль он пытается конектиться по указаному в конфиге IP адресу для входа в игру. И далее по стандартной схеме - получается по тому же IP адресу ответ, далее отправляет запрос на получение инфы вашего перса, получает ответ, запрашивает список серверов (Уже в самой игру) и воуля - вы уже видите своего перса и сервер-лист. Логин/Пароль передаются в клиент самым обычным способ, путём добавления нескольких ключей к ярлыку pointblank.exe(Об этом во второй части).
Ещё хотел чуть-чуть про запускатор инновы расказать, если вы не против:
При входа в запускатор он нам выдаёт специальный логин/пароль, который передаётся клиенту. Если это был бы обычный вид нашего логина/пароль (vasyaivanov/1234567) то мы могли бы запускать клиент пб без "запускатора", но тут сложнее: Запускатор генерит нам "запутанные" логин и пароль (Примерно такие: vdsf0234dsf/1lndsf3o4hf), и уже с помощью них запускается клиент. К чему это я? Да к тому, что если узнать это значения (Выдрать из запускатора) то можно с помощью них без фроста запускать клиент - ТЕОРЕТИЧЕСКИ
Это была лишь моя маленькая теория, и если до меня об этом сняли уже 100500 гайдов и написали столько же статей, то извиняйте - я их не видел, а поделиться задумками хотел.
Скачать PBConfigEditor:
[Ссылки могут видеть только зарегистрированные пользователи. ] * + Есть ссылка во вложениях, ниже
[Ссылки могут видеть только зарегистрированные пользователи. ]
* Автор программы не против её распространения, сам автор (Тобишь я) никуда кроме zhyk.ru софт выкладывать не будет, ибо лень.
** На счёт вирусов - их там нет, да (Ну если только пара троянов шучу шучу )
Во второй части мы попробуем понять как работает сервер ПБ, попробуем запустить ПБ и ещё что то
Но будет ли вторая часть - зависит от вас, жду Ваши комментарии, для меня это самое главное.
Последний раз редактировалось Fojest; 04.07.2012 в 09:28.
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Меня просто интересует вопрос , автор сам написал (даже если не сам) такую полезную тему , а его не кто не благодарит! Как развиваться тогда новичкам ?
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Цитата:
Сообщение от Fallen59rus
что это? по моему, если ты уж и написал программу, то ты сумеешь сделать нормальную ссылку на скачку, не?
и ещё ВТ исполняемого файла
За ссылку извиняюсь, исправил. Про вт даже не подумал, добавлю.
Цитата:
Сообщение от бур___жуй
звучит как фантастика в иннове тож не дураки сидят
Я вчера сам играл на пиратском сервере, это вполне возможно (LA2 тому доказательство, запилено уже over 9000 сборок серверов). Во второй части вы поймёте почему это возможно.
Цитата:
Сообщение от †CHeyZeR†
Меня просто интересует вопрос , автор сам написал (даже если не сам) такую полезную тему , а его не кто не благодарит! Как развиваться тогда новичкам ?
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
если взять эту тему за основу, то можно сделать "вход в любой акк без пароля",т.е. входишь в запускатор с любого акка, а в игре другой (и мб Flex'a =D).Была же раньше такая хрень (у инновы косяк на серваке был) и у многих игроков при входе в игру был чужой аккаунт (не помню, когда такое было).
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Цитата:
Сообщение от Fox1510
если взять эту тему за основу, то можно сделать "вход в любой акк без пароля",т.е. входишь в запускатор с любого акка, а в игре другой (и мб Flex'a =D).Была же раньше такая хрень (у инновы косяк на серваке был) и у многих игроков при входе в игру был чужой аккаунт (не помню, когда такое было).
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Вот это тема...респект тебе. Можно качаться и не париться особо. А идея входа без логина и пасса, звучит интересно.
Немного оффтопа. Слушай, а можешь что нибудь придумать, чтобы запустить ПБ на виртуалке?
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Цитата:
Сообщение от Tallahassee
Вот это тема...респект тебе. Можно качаться и не париться особо. А идея входа без логина и пасса, звучит интересно.
Немного оффтопа. Слушай, а можешь что нибудь придумать, чтобы запустить ПБ на виртуалке?
Это очень сложно, а скорее всего даже не возможно, могу только сказать что как минимум на виртулке должен стоять Windows
Создаём свой сервер PB. Часть 2 - Теория и ещё раз теория!
* Данная статья устарела, см. эту тему: http://zhyk.ru/forum/showthread.php?t=450095
WARNING! Данная статья написана исключительно для кодеров, не нужно в комментариях писать "ЭЭэ а что такое сокеты? Где их скачать?" И прочее.
Так-же хочу сказать, что на данный момент у меня нет готового сервера PB, но уже есть полное представление о работе сервера PB, и есть некоторые наброски. Статья написана для того, чтобы вы не проходили тот путь который прошёл я (Долгое и мучительно рысканье по форумам в поисках хоть какой то информации чтобы начать разработку) а сразу преступили к экспериментам.
- Статья написана в надежде на появление первых сборок серверов PB.
- Статья написана в надежде на то, что появятся сервера альтернативные 4game, ибо они зло, монополисты да и вообще..
Если вы думаете что всё это сказки, и что никогда не будет других серверов PB - спешу вас огорчить, они уже есть, сырые конечно но уже работают - pbdev например (It's DONT ad).
Теперь вы готовы, поехали.
Доброго времени суток! Это моя вторая статья-рассуждение на тему создание сервера PB. Перед прочтением очень желательно прочитать первую часть.
Подробности запуска и lwsi_En.sif
И так, начинаем. Последний раз пишу про lwsi_En.sif, после вы уже должны себе представлять что он делает и зачем он нужен, ибо дальше будет намного сложнее. Собственно, всё об этом файле я уже написал в первой части, теперь только дополню что при запуске PB берёт из этого файлика адрес для TCP подключения к мастер серверу - это самое главное.
Теперь о запуске, запустить PB естественным способом можно просто передав при запуске логин и пароль, примерно так это будет выглядеть: ".../pointblank.exe YourLogon YourPass" - это лишь для галочки, чтобы вы в дальнейшем представляли откуда берётся логин/пароль, подробнее о запуске расскажу в 3 или 4 части.
* Далее идёт контент для понимания которого требуется хотя бы малейшее представление о протоколе TCP, знание IP и сокетов. Все примеры написаны на JAVA в среде Eclipse.
Первый пакет или авторизация клиента
Определения:
Клиент - Клиент игры PB
Сервер - Мастер сервер PB (Сервер инновы к примеру)
Клиент после загрузка всех компонентов устанавливает TCP соединение с сервером, т.е. сокет, где IP сокета - IP указаный в конфиге а порт равен 39190 - Обращаю ваше внимание на то, что это порт сокета сервера, а не клиента, у клиента может быть любой порт. Отправляются такие байты: ____ - всего 6 байт. В ответ сервер отправляет следующие байты:
Симулируем сервер:
Для симуляции сервера нам понадобится наш симулятор сервера, который будет работать на порту 39190, а так же необходимо в конфиге клиента указать IP 127.0.0.1 - будет сами себе сервером.
Приступаем..
Пишем примерно такой код (Да да, это ОЧЕНЬ примерный код, сами в гугле найдёте под ваш язык, примеров море):
PHP код:
ServerSocket srv1 = new ServerSocket(39190); // Устанавливаем серверный сокет на порт 39190 socket = srv1.accept(); //Ждём первого пакета от клиента InputStream sin = socket.getInputStream(); OutputStream sout = socket.getOutputStream(); //Получаем потоки.
Работу с потоками я описывать не буду, кому нужно тот сам знает что и как, тут главное начать. И так, таким образом мы получим уже знакомые нам байты от клиента: Delete, use http://zhyk.ru/forum/showthread.php?t=450095 - что значат эти байты, я понятия не имею, скорее всего попытка авторизации или что-то в этом роде.
Я попробовал симулировать клиент PB и установил сокет с сервером инновы, то что я получил в ответ
есть выше.
Подведу итог того, что мы имеем на сегодняшний день:
Возможность имитировать сервер и клиент
Первый запрос и ответ между клиентом и сервером.
Далее можно путём эксперимента дойти до запросов о получении списка серверов, создания комнаты и т.д., изучить все пакеты, и написать свой сервер. Уже не так сложно, правда, уважаемые кодеры жук.ру?
Объединяемся:
Я уверен, на этом форуме есть кодеры разбирающиеся в сокетах лучше чем я (Я начал их изучать специально для этого "дела" и знаком с ними всего 2-ой день, до этого работал только с более высокоуровневыми протоколами передачи данных), жду вас в комментариях или пишите в л/с: vk.com/fojest
Спасибо что прочли статью, в этот раз получилась очень скучная статья, связано этом с тем что я сегодня устал и голова уже кипит, а статью писать надо..
Последний раз редактировалось Fojest; 07.07.2012 в 20:47.
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Цитата:
Сообщение от †LoONy†
2 часть гайда не работает
Её удалили модераторы, по причине того что "можно было запихнуть 2 части в одну тему", заливать заново не буду, ваши проблемы. В разделе "Общение программистов PB(Или как-то так, точно не помню)" есть моя другая тема, лучше её глянь, там больше инфы чем во второй части.
UPD: Добрые модераторы переместили вторую часть в эту тему, она чуть выше, там ^
Последний раз редактировалось Fojest; 07.07.2012 в 20:47.
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Можно реально протестить работоспособность данной темы? Не предлагайте самому запускать эмулятор, спрашиваю у тех, кто это уже осуществил, интересно или вообще это реально работает...
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Цитата:
Сообщение от RE$ET
Можно реально протестить работоспособность данной темы? Не предлагайте самому запускать эмулятор, спрашиваю у тех, кто это уже осуществил, интересно или вообще это реально работает...
работает, но в теме полно ляпов. как ни крути нужно самому сидеть и разбираться
Re: Создаём свой сервер PB. Часть 1 - PBConfigEditor и теория
Ребят, простите что не в той теме пишу, просто нужно узнать 1 нюанс..
стоит ли доверять этому файлу?
[Ссылки могут видеть только зарегистрированные пользователи. ]
прошу ответить благоразумно
И ЕЩЕ, ПРОШУ АРГУМЕНТИРОВАТЬ ТО, ПОЧЕМУ И ЗА ЧТО РЕПУ В МИНУС ПУСТИЛИ?
я ведь извинился что не в теме написал, просто тут много людей сидят знающих про вирусы, какие вредные какие без..
нужен был совет, а не репу в -122.
Последний раз редактировалось ALLADuH; 09.08.2012 в 01:09.