Zemyna действует как своего рода прокси: он заставляет клиента подключаться к специальному локальному серверу, который пересылает все пакеты от клиента на реальный сервер. Таким образом, он может читать каждый отправленный или полученный пакет. Эти пакеты затем можно передать другим приложениям, чтобы они могли с ними работать, например, регистраторам, таким как PaleTree.
Чтобы Zemyna могла читать пакеты, ей необходимо контролировать процесс запуска, поскольку она временно настраивает ваш клиент для туннелирования его соединения. Для этого он создает резервную копию файла client.xml, содержащего информацию о том, к чему подключаться, и создает новый файл. Это изменение отменяется после закрытия Zemyna, поэтому вам не придется самостоятельно возиться с какими-либо файлами.
Чтобы сообщить Zemyna, куда подключать клиента, вы используете параметры командной строки. Например, допустим, вы хотите логировать пакеты на международном сервере Laima, вы бы просто запустили это из командной строки так, предварительно переместив Zemyna в папку с игрой:
Zemyna.exe host:54.88.25.242 port:2000
IP и порт соответствуют серверу входа в систему Laima. Вы можете найти хост и порт вашего целевого сервера в официальном списке серверов. URL-адрес его можно найти в файле client.xml.
Для облегчения повторного использования вам следует создать ссылку или bat-файл. Затем Zemyna предпримет необходимые шаги, чтобы иметь возможность читать пакеты из сети, и запустит клиент. Небольшое окошко в левом верхнем углу покажет вам, что Zemyna запущена, оно закрывается автоматически при закрытии клиента. Вы также можете дважды щелкнуть по нему, чтобы быстро закрыть Zemyna и клиент.
Поскольку таким образом вы можете иметь в списке серверов только один сервер, тот, который вы указываете в параметрах, вы можете создать несколько ссылок/бит, по одной для каждого сервера.
Если вы хотите использовать Zemyna на сервере, который не использует автоматический вход в Steam, вам необходимо предоставить Zemyna static__Conf.txt, где для UseSteamClient
установлено значение NO
.
ServiceNation=GLOBAL
Dictionary=YES
UseNexonSSO=NO
UseNexonGLM=NO
UseHackshield=NO
UseSteamClient=NO
UseXigncode=NO
UseNISMS_TESTURL=NO
UseNISMS_ONLY_OFFER=YES
Если файл находится на вашем локальном веб-сервере, в «/toslive/patch», вы должны заставить Zemyna использовать его следующим образом:
Zemyna.exe host:127.0.0.1 port:2000 staticconfig:http://127.0.0.1/toslive/patch/
Обратите внимание, что клиент обращается к файлу через SSL (HTTPS), поэтому настройте свой веб-сервер соответствующим образом.
Zemyna использует тот же API, что и инструмент «Алиса», вдохновленный ею. Он использует сообщения WM_COPY для связи между окном Земины и окном подписчика. Чтобы подписаться на Zemyna, получить пакеты, вы отправляете «op» (dwData) 100
в окно Zemyna (имя окна: «mod_Tossa»), чтобы отказаться от подписки, вы отправляете 101
. Пока вы подписаны, вы получаете все входящие (op 0x10101012
) и исходящие (op 0x10101011
) пакеты одним и тем же методом.
В качестве реального примера того, как это работает, я предлагаю посмотреть соответствующие функции в Pale. Альтернативно вы также можете создать плагин для Pale, что будет проще.
Если вы проверите выпуски, вы обнаружите несколько версий, одна из них предназначена для kTOS (обратите внимание на префикс «k»). Выберите его, если хотите регистрировать пакеты на корейском сервере.
Из-за того, что kTOS использует веб-логин, нам пришлось действовать немного по-другому для корейской версии Zemyna. Вам нужен дополнительный аргумент «kr», который активирует определенные опции только KR. Пример:
Zemyna.exe host:54.88.25.242 port:2000 kr nosteam
После того, как вы запустите Zemyna таким образом, клиент не запустится автоматически, но он все равно будет изменять файлы клиента, поэтому, когда вы наконец запустите клиент через веб-логин, соединение все равно будет проходить через Zemyna, что позволит вам регистрировать пакеты с помощью Бледное Дерево.