[!] Правим servers.txt: подключение к неизвестному серверу-4

FAQ. Ответы на часто задаваемые вопросы.

Модератор: 4epT

Правила форума
Этот раздел является руководством и тут разрешено оставлять сообщения лишь для уточнения и внесения корректив в существующие материалы. Для вопросов существует ряд других разделов.
Аватара пользователя
miniBot
Грамотный
Сообщения: 429
Зарегистрирован: Вс ноя 05, 2006 8:48 am
Откуда: Москва
Контактная информация:

[!] Правим servers.txt: подключение к неизвестному серверу-4

Сообщение miniBot »

Файлик servers.txt содержит настройки на серверы, и находится в папочке tables.

Чтобы подключиться к одному из упомянутых в servers.txt серверов, надо в config.txt очистить строчки master, server и serverType. После этого, если запустить ОпенКору, она предложит выбрать сервер из списка.

Серверов в данном файле по умолчанию множество, но вашего там конечно не оказалось - жаль... но мы это исправим!

Файлик servers.txt имеет такой формат:
[Server] - имя вашего сервера, каким вы его хотите видеть
ip 000.000.000.000 - IP-адрес вашего сервера
port 6900 - порт вашего сервера
serverType 8 - версия протокола обмена данными, "тип сервера"
master_version 12 - т.н. мастер_версия сервера
version 0 - т.н. версия сервера
private 1 - 1 - приватный (пиратский) / 0 - официальный
serverEncoding Russian - кодировка сервера, всегда стоит ставить Russian
(бывают и другие, редкие опции, часть из них важна, и описана ниже в теме).

1. Запасаемся программой WPE pro - найти ее можно тут yandex.ru google.ru rambler.ru ...

2. Если у вас установлен антивирус отключите его на пару минут, т.к. WpeSpy.dll он видим как троян, но это простой снифер, и наоборот очень полезен.

3. Запусти свой клиент Ро и дойди то того момента когда надо вводить логин/пароль:
Изображение

4. Не выходи из клиента и запусти WPE Pro (для того чтобы выйти не закрывая клиент нажми на клаве кнопку Windows.)

5.Выбери из списка программ клиент Ро:
Изображение

6. Нажми кнопку Play:
Изображение

7. Введи свой логин/пароль (если боишся что их украдут через эту программу, то введи логин/пароль любого чара):
Изображение

8. Перейди на WPE Pro и нажми Stop:
Изображение

9. Результаты:
Изображение

1 - Это IP сервера 38.144.194.2 и порт 6900.
2 - Это число надо перевести из Hex в обыкновенное (ссылка на калькулятор в низу). Полученное число будет версией сервера (version)
3 - Это master version, его тоже следует перевести из Hex в Dec.

Взято отсюда
Или отсюда

Калькулятор для перевода из hex в deс тут или тут

Ну и теперь самое главное, чтобы все это заработало нужно в config.txt прописать имя вашего сервера

Код: Выделить всё

server Server - то самое имя, которое вы ввели в servers.txt
Не бейте сильно, но на этом форуме по этому поводу, действительно скудная информация, надеюсь кому-то поможет.

* * *

(pJ - дополнение ниже)
Дополнение! На самом деле version - 4х байтное поле, а не 1-о байтное поле, как про это пишут в первом посте темы. Вот как расчитываеццо "версион" на самом деле:
Изображение
тут нупы пишут "айяйяй, у меня не такой калькулятор в винде, што делать?"
поясняем! надо в меню куркулятора нажать "вид" - "инженерный".
* * *
Самым забывчивым - еще раз напоминаю:
Местный OpenKore по умолчанию настроена на RagGame (русский оф).
Если вы играете на другом сервере, то перед запуском Kore, первым делом следует залезть в config.txt и очистить два пункта настройки, вот так:

master
и
serverType

Тогда Kore при запуске предложит выбрать сервер из списка имеющихся в ней, и подхватит его настройки.
Кроме того, необходимо в папке plugins удалить плагины ropp.pl и pathconnect.pl.
Адрес сервера и порт вам понадобится в любом случае. Остальное...
Полезно знать, что на поганых пиратских серверах version и master_version часто вообще не учитываются, сервер просто не смотрит на них. Однако, бывают и исключения... так что лучше довести дело до конца, узнать их, и прописать в servers.txt, как положено.
Кроме того, вам наверняка потребуется узнать serverType. Обязательно прочтите об его определении, это описано ниже в топике.
помощь только тем у кого включен параметр - mozgEnable 1

БОТАТЬ, БОТАТЬ, И ЕЩЕ РАЗ БОТАТЬ, КАК ЗАВЕЩАЛ ВЕЛИКИЙ ЛЕНИН
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Маленькое дополнение: насчет опции private и где взять WPE.

#1
private 1 - Эта опция на самом деле запрещает Kore брать адреса char- и map- серверов из пакетов, засылаемых сервером. Адреса, выставляемые сервером, игнорируются, и Kore считает что все сервера находятся по одному и тому же ip-адресу. Эта опция нужна практически для всех маленьких пирацких серверов.
#2
Обязательна ли опция "private 1" для пирацких серваков?
Опция "Private 1" - если всё работает без нее - не нужна.
Строго говоря, эта опция нужна только вот когда: если запускаешь OpenKore, и в консоли видишь, что Kore сначало нормально логинится (акк-сервер), а потом начинает ломиться по каким-то безумным IP-адресам (чар- или мап- сервер), например 255.255.ххх.ххх или 127.0.0.1, или подобным, несуществующим адресам.

А если есть сомнения, лучше всего проконтролировать с помощью WPE, по тем же самым ли адресам и портам ходит клиент и OpenKore - это надежнее всего.
* * *
WPE Pro можно скачать у нас на форуме; см. раздел Download.
Последний раз редактировалось piroJOKE Вт фев 19, 2008 7:36 pm, всего редактировалось 8 раз.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Еще одно важнейшее дополнение: вычисление serverType.

Вкратце:
* если вы играете на официальном сервере, наверняка у вас serverType 0;
* если вы играете на голимом пиратском сервере - скорее всего serverType 8, или еще бывает 9.
Подробности. Этот гайд (выше) порос мхом. Он очень древний. Он написан был в те времена, когда все сервера были практически одинаковы. В нём не хватает одного важного момента - определение serverType сервера.

serverType - это, фактически, версия протокола обмена информацией между клиентом и сервером (т.е. какого размера пакеты и как в них уложена информация). Как его определить? Логичнее всего захватить WPE несколько пакетов - move, attack, и сравнить их с... э... ну с исходниками Kore. Если вам не понятно, как это сделать, просто подберите это число. Типичные значения (в порядке снижения популярности) - 8, 9, 5, 0, 8_1. Если эти значения не подходят, попробуйте другие, из диапазона 0...20.

* * *

Дополнение. Определяем сервер-тайп:
Замый простой для понимания нупов метод - WPE в зубы, и отлавливаешь пакет мап-логина.

Затем, у изловленного пакета смотришь на...
а) первые два байта (заголовок).
б) его длину.

Вот этот фрагмент нупам делать не обязательно, дальше есть упрощенный метод; но все равно прочитать стоит:
Далее, лезешь в исходники OpenKore, в network...send... и в разных файлах/процедурах там (в сервертайпах) ищешь, чему тобой изловленное равняется; т.е. какой сервер-тайп генерирует такие пакеты, как ты изловил (еще раз, нас интересует соответствие заголовка и длины).

Длину пакета нупам определить по исходнику обычно тоже затруднительно. Ну что ж, тогда плюешь на длину, просто записываешь себе все serverType с подходящим заголовком, и пробуешь их по очереди.

PS:Стоит сделать табличку, чтобы не лазить по исходникам, но чо-та лень. (Это уже сделано! См. ниже!)
ЗЫ: Приложение. Как изловить мап логин. Доходишь до выбора чара, нажимаешь "запись" в WPE, затем выбираешь чара. Через секунду нажимаешь "стоп", и смотришь чо изловилось. Самый первый пакет будет посылка чар-серверу, как правило, в порт 6121. А то, что тебе нужно - первый пакет "к другому порту", как правило, к 5121.

PPS: На картинке в первом посте темы НЕ тот пакет что нам нужен, но, чисто для примера, заголовок этого пакета "64 00" (0x0064), а его длина "55".

Вот здесь на картинке изловлен мап-логин, как описано выше. Давайте найдем нужную нам информацию...Изображение
Тут кстати видно, в каком слоте афтар картинки выбрал чара (пакет №6, send, смотреть на последний байт). А чар сервер (порт 6121) тебе на это ответил (Recv, пакет №7) "где ты появляешься" (т.е., какую карту загружать клиенту)(это был последний пакет от чар-сервера). И вот, после загрузки карты клиент телеграфирует (пакет №8) мап-серверу (смена порта на 5121, send) ("карта загружена, поехали!") - так вот это нам и надо (мап-логин)! Здесь у тебя заголовок "9B 00", длина 26. Кажется, это или сервертайп 8, или 8_1, имхо, я точно не помню какой.
* * *

А вот теперь совсем всё просто. Упрощенный метод. Достаточно захватить этот самый пакет мап-логина и заглянуть вот в эту свеженарисованную табличку:
Табличка соответствий serverType - eA's packet version - параметры мап-логина (заголовок, длина), не совсем полная:

8 ....... 22 ....... 0x009b,26 ....... eA середины 2007 - самая распространенная
нет ....... 21 ....... 0x009b,26 ....... немного устаревший вариант еА; внимание, та же длина пакетов, что и у sT-8, но другое расположение аргуметов (?).
9 ....... 19 ....... 0x009b,37 ....... eA ~середина 2006
5 ....... 18 ....... 0x009b,32 ....... eA ~начало 2006
0 ....... 5 ....... 0x0072,19 ....... iRO, а так же устаревшие сервера разных платформ
8_1 ....... (не поддерживается eA) ........ 0x009b,34 ....... редкость
3 ....... 16 ....... 0x009b,32 ....... как sT-5, но другое расположение аргументов; редкость.
4 ....... 13 ....... 0x00f5,29 ....... иногда встречается.



* * *

Правильное определение serverType поможет вашей безопасности. Дело в том, что эмулятор eAthena разрешает работу сразу нескольких версий клиента, но показывает администратору, какую именно версию использует клиент.
Разумеется, если там будет указана "не родная" версия, не такая как у оригинального клиента, это может вызвать подозрения, плавно переростающие в уверенность, что вы используете "нехороший" софт.

* * *

Дополнение: На данный момент (март 2008) появились варианты serverType 8_2, 8_3 и 8_4. Руководство по их использованию пока не составлено.
Последний раз редактировалось piroJOKE Ср апр 02, 2008 1:08 pm, всего редактировалось 36 раз.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

PS: Обновленная версия гайда есть на сайте OpenKore:
http://www.openkore.com/wiki/index.php/ ... nformation
Он посложнее, чем изначальный. Но, может пригодится.

ЗЗЫ: Насчет вот этого "нового" гайда. Этим стоит заниматься только, если WPE не работает. Ну там, антивирус его не пускает, или у вас хитрая операционка.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Что делать, если имя чара, его профессия и уровень отображаются неправильно?

A1: Наверняка вы неправильно определили serverType! См. про него выше.

A2: Однако, в очень редких случаях, если вы уверены что serverType верен... читаем дальше:
Очень часто жалуются, что "имя чара, его уровни и даже цвета отображаются неправильно". Ну, например, новис имеет уровень 0/0.
Вот типичный пример, как это выглядит; тут кусочек экрана клиента и кучочек экрана OpenKore (видите, внизу имя обрезано?):
Изображение
В таком случае следует добавить в servers.txt (в описание сервера) такую строчку:
charBlockSize 108
Эта цифра - это к-во байт; указывает, какое количество байтов отводится под описание каждого из персонажей. Раньше всегда этот размер был равен 106, но вот теперь он на новых серверах 108, и возможно, будет когда-нибудь еще изменен.
И еще вот что: эта штука не работает со старыми OpenKore; нужен ~ 1.9.4 SVN 5200, и выше.
Полезно знать, что в ОпенКоровском serverType 8 уже внутри его прописана цифра 108, поэтому он не требует под себя дополнительной настойки, ему не нужна вот эта строчка "чарБлокСайз".

* * *

Дальше будет неинтересная тёрка, откуда эта проблема взялась:

Проблема наблюдается только на пиратских серверах. Потому что г-да пираты используют тестовый клиент корейцев, sakexe, как наименее защищенный от копирования. В нем было все в порядке, пока корейцы не задумали объединить у себя сервера, в т.ч. чаров с разных серверов - в одну кучу. А под это дело им понадобилось еще 2 байта в заголовке, вроде бы как указатель на старого чара(?).
Последний раз редактировалось piroJOKE Вс янв 27, 2008 4:18 pm, всего редактировалось 7 раз.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Режим xKore 1 и serverType:
Кстати, правильное определение serverType необходимо для работы в режиме xKore 1.

Если "serverType" клиента и serverType OpenKore не совпадут - вы получите вылеты из игры и/или зависания персонажа в игре.
И это несмотря на то, что по отдельности клиент будет работать и OpenKore в режиме xKore 0 тоже!

- - - - - -

P.S.: Речь идет о том, что многие сервера не требует четкого определения сервертайпа и допускают работу нескольких сервертайпов.

P.P.S.: Для самых маленьких разъясняю: сервер-тайп задается в servers.txt, и оттудова он автоматом переносиццо в config.txt.
(Правда, чтобы он перенесся автоматом, первый раз следует запустить OpenKore в режиме (внимание!) xKore 0, что и рекомендуеццо сделать, прежде чем лезть в xKore 1).

P.P.P.S.: Вторая часто распространенная проблема режима xKore - неверный файл recvpackets.txt (об этом написано ниже).
* * *

Хозяйке на заметку, о простом определении адреса/порта сервера.
Смотрите-ка, какую здравую мысль высказал нуп Димончаун с Чит-Ворлдса:

"чтобы узнать IP нуна сделать вещи
1 Войдя в игру нажать Пуск.Выполнить пропечатать "cmd"
2 В появившейся консоли прописать "netstat"
3 Выбираем свой Ip и Port"

Ы? Красота.

PS: Уточняю. Сначала набираем команду в консоли, но не нажимаем "ввод". Затем логинимся, сразу переключаемся на консоль, и жмем "ввод". Среди установленных соединений (обычно их не много), видим наше, как правило с флажком "time_wait".

kLabMouse говорит: netstat -a -n
4орт говорит: лучше netstat -b и это действительно хороший вариант, т.к. указывается сразу имя приложения, например sakexe.exe.

ЗЗЫ: Не. Фигня этот netstat. Не всегда срабатывает. Лучше классический мэтод.
Последний раз редактировалось piroJOKE Вс янв 27, 2008 4:22 pm, всего редактировалось 5 раз.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Опытные товарищи сообщают, что очень хорошо и правильно создавать для каждого сервера свой файл recvpackets.txt на основании exe-шника клиента.
Уточнение: 95% вероятности, что без пересоздания этого файла у вас не будет работать xKore-режим.
Качаем Packet Length Extractor, либо качаем его у нас, из раздела форума "Download", из темы "Инструменты". Натравливаем его на exe-шник РО-клиента. Снимаем галочку "сортировать" на морде программы. Сохраняем полученный файл, предположим с именем recvpackets-my.txt в папочку \tables\ бота. Далее лезем в наш \tables\servers.txt, и к нашему блоку описания сервера добавляем строчку:

recvpackets recvpackets-my.txt

Для старых версий ОК (версия сборки древнее 6159) такая строчка в серверс.тхт не поддерживается. Тогда надо просто заменить стандартный recvpackets.txt нашим самодельным файлом.

Дополнение: кстати, в Download > Инструменты у нас есть альтернативные экстракторы длин пакетов; если этот фирменный Packet Length Extractor не сработает, что иногда бывает, попробуйте и их тоже.

Обоснование, зачем нужен recvpackets.txt, читаем вот в этой дискуссии: viewtopic.php?p=43848 ("recvpackets.txt - для каждого сервака свой?")
Вложения
экстрактор задумался немножко над exe-шником...
экстрактор задумался немножко над exe-шником...
pl_extractor.png (1.6 КБ) 52221 просмотр
Последний раз редактировалось piroJOKE Вс янв 27, 2008 4:20 pm, всего редактировалось 3 раза.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

FAQ дополнен. Основные изменения - сделаны акценты на важных вещах, на которых обычно ошибались новички.

ToDo:

* полный перечень опций в блоке описания сервера из файла servers.txt;
* переработать 1й пост темы, чтобы он был одним куском, а не пост + дополнение;
* срочно нужен обзор новых serverType; :(
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Закрыто