Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   ArcheAge (https://forum.zone-game.info/forumdisplay.php?f=187)
-   -   Создание ланчера (https://forum.zone-game.info/showthread.php?t=30063)

Smiler 11.07.2013 00:37

Создание ланчера
 
Я наконец собрался и решил предоставить инструмент + небольшой пример для создания ланчера с функцией перенаправления трафика от клиента ArcheAge на свой логин сервер.

Как известно в ArcheAge адрес и порт логин сервера клиент игры получает от ланчера в коммандной строке, в виде зашифрованной строки.

примерно так :
Цитата:

archeage.exe keFMZFKNM2nMGIKN
метод шифровки я пока выкладывать небуду (реверсеры думаю его и так раскопали кому надо), но зато выкладываю свою dll с одной экспортной функцией которая как раз и генерирует нужную нам строку-ключ. а также небольшой исходник как использовать данную библиотеку.
Скачать:
Свернуть ↑Развернуть ↓


пример использования :
Код:

int _tmain(int argc, _TCHAR* argv[])
{
        char * str = new char[20];
        generateInitStr(127,0,0,1,1237,str);
        std::cout << str ;
        return 0;
}

функция generateInitStr получает 5 целочисленных параметров (адрес и порт) и возвращает строку в параметр str

Smiler 30.11.2013 11:43

Re: Создание ланчера
 
продолжим.

второй способ запуска клиента:

рассчитан на русскую версию, но работает и на текущей корейской.

запускаем из коммандной строки

пример:
Цитата:

archeage.exe +acpxmk -r +auth_ip 127.0.0.1:1237 -uid test -token 11111111111111111111111111111111111111111111111111 11111111111111
разберем ключи

Цитата:

+acpxmk - отключить GameGuard
-r - локализация ru
+auth_ip - адрес и порт логин сервера
-uid - имя аккаунта
-token - пароль (32 байта) точно в таком виде этот пароль придет на логин.
крипт пароля придумываем свой, или забиваем на крипт и отправляем пароль прям без шифровки :D , как и говорил ранее ненадо разбирать корейский крипт пароля.

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

на логине получаем следующий пакет :

3d 00 05 00 0a 00 00 00 07 00 00 00 00 08 00 00
00 00 00 00 00 00 00 04 00 74 65 73 74 20 00 11
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11


опкод
длинна логина
логин
длинна пароля
пароль

enjoy

MadHacker 01.12.2013 11:22

Re: Создание ланчера
 
Забавно. Но разбирать крипт пароля всё равно придётся. Не все ведь пишут серверную часть.

Smiler 01.12.2013 11:28

Re: Создание ланчера
 
Цитата:

Сообщение от MadHacker (Сообщение 336622)
Забавно. Но разбирать крипт пароля всё равно придётся. Не все ведь пишут серверную часть.

зачем вам корейский крипт?

если вы не занимаетесь написанием сервера, то только для брута?

зачем брутить корейские акки?

в ру локализации крипт пароля (тот самый token) делает не клиент игры , а "GameCenter mail.ru"

MadHacker 01.12.2013 12:38

Re: Создание ланчера
 
Ну я же не сказал что разбирать надо корейский :)
Разбирать придётся тот механизм, который будет на РуОфе.
Игровой центр токен не делает, он его запрашивает у сервера, но это уже совсем другая история.

Smiler 01.12.2013 16:37

Re: Создание ланчера
 
Цитата:

Сообщение от MadHacker (Сообщение 336651)
Ну я же не сказал что разбирать надо корейский :)
Разбирать придётся тот механизм, который будет на РуОфе.
Игровой центр токен не делает, он его запрашивает у сервера, но это уже совсем другая история.

что там разбирать? а главное для чего? какая цель?

авторизация по почте, далее получения токена доступного вашей почте, вход в игру.

MadHacker 01.12.2013 17:02

Re: Создание ланчера
 
Там разбирать протокол ИЦ, чтоб получать токен. Хотя проще будет конфиг ИЦ поправить, чтоб он сам запускал нужную программу с токеном.
Цель простая - войти в игру.
Я не спорю, что тем, кто работает с серверной частью разбирать ничего не придётся. Достаточно написать ланчер. Но есть люди, которые работают с клиентской частью и им придётся разбираться с механизмом того сервера, с которым они будут работать.

Smiler 01.12.2013 17:14

Re: Создание ланчера
 
Цитата:

Сообщение от MadHacker (Сообщение 336685)
Там разбирать протокол ИЦ, чтоб получать токен. Хотя проще будет конфиг ИЦ поправить, чтоб он сам запускал нужную программу с токеном.
Цель простая - войти в игру.
Я не спорю, что тем, кто работает с серверной частью разбирать ничего не придётся. Достаточно написать ланчер. Но есть люди, которые работают с клиентской частью и им придётся разбираться с механизмом того сервера, с которым они будут работать.

а понял, Вы имеете в виду чтобы написать альтернативный ланчер для РуОфа... да тогда придется разбирать получение токена.

Kelax 19.12.2013 22:12

Re: Создание ланчера
 
Цитата:

Сообщение от MHard (Сообщение 336686)
+acpxmk - отключить GameGuard

Packet Error с чем связан после входа на сервер?

ehnoah 06.01.2014 19:04

Re: Создание ланчера
 
This tool is based to skip the Mail.ru Launcher? Or to connect to Private Servers?

Smiler 10.01.2014 18:49

Re: Создание ланчера
 
Цитата:

Сообщение от Kelax (Сообщение 340328)
Packet Error с чем связан после входа на сервер?

видимо с тем что сервер проверяет включен ли ХакШилд или нет.
и если нет то офф.

этот параметр удобен не для офа а для будущих фришек, не надо выковыривать защиту и изменять файлы клиента, достаточно сделать ланчер.

Kelax 10.01.2014 19:05

Re: Создание ланчера
 
Цитата:

Сообщение от MHard (Сообщение 345092)
видимо с тем что сервер проверяет включен ли ХакШилд или нет.
и если нет то офф.

этот параметр удобен не для офа а для будущих фришек, не надо выковыривать защиту и изменять файлы клиента, достаточно сделать ланчер.

Значит надо сделать так чтобы сервер думал что он включен? Или лучше править сам hshield?

Smiler 10.01.2014 19:10

Re: Создание ланчера
 
Сервер игры отправляет пакеты на проверку HS клиенту , клиентская часть HS которая встроена в клиент игры, в свою очередь на них отвечает.

отключать HS на офе нельзя, сервер это видит.

Kelax 10.01.2014 19:11

Re: Создание ланчера
 
Цитата:

Сообщение от MHard (Сообщение 345106)
Сервер игры отправляет пакеты на проверку HS клиенту , клиент в свою очередь на них отвечает.

отключать HS на офе нельзя, сервер это видит.

Выходит надо править сам hshield : (

wheel 15.01.2014 20:36

Re: Создание ланчера
 
Разрешите продолжить тему запуска клиента игры.
После небольшого исследования было установлено, что за создание token'а отвечает следующий сценарий:
Код:

https://authdl.mail.ru/sz.php
Псевдонимом для домена authdl.mail.ru является также auth.dl.mail.ru.
При отправке POST-запроса (с использованием SSL) следующего вида:
Код:

POST /sz.php?hint=AutoLogin HTTP/1.1
Host: authdl.mail.ru
User-Agent: Downloader/3700
Content-Type: application/x-www-form-urlencoded
Content-Length: 240
<?xml version="1.0" encoding="UTF-8"?><AutoLogin ProjectId="3001" SubProjectId="0" ShardId="0" Mpop="<Mpop-value>"/>

где <Mpop-value> - значение печенюшки под названием Mpop после аутентификации учётной записи mail.ru
сценарий отправляет в ответ xml-ку следующего вида:
Код:

<?xml version="1.0" encoding="UTF-8"?><AutoLogin PersId="<aa-user-id>" Key="<token>" />
где <aa-user-id> - идентификатор пользователя ArcheAge, <token> - соответственно, token доступа.
Вот...
PS Осталась лишь мелочь - сделать сценарий для автоматической аутентификации пользователей и получения значения печенюшки Mpop
Благодарю за внимание.

Onax 05.03.2014 17:42

Re: Создание ланчера
 
разбирать метод создания куки mpop не нужно, мейл сам присылает нам этот кукис при банальной авторизации в почте через браузер например
короче всего 2 запроса
один на https://auth.mail.ru/cgi-bin/auth с логином и паролем, прилетает драгоценный mpop
второй уже на https://authdl.mail.ru/sz.php?hint=AutoLogin с mpop, прилетает ИД и токен для запуска
усё, себе лаунчер накидал если надо могу выложить

Hint 05.03.2014 18:49

Re: Создание ланчера
 
Пользователю проще ввести логин и пароль, чем скопировать куку из браузера.

MadHacker 05.03.2014 19:09

Re: Создание ланчера
 
Выкладывайте конечно, только с исходниками :)

Onax 05.03.2014 20:12

Re: Создание ланчера
 
вот http://rghost.ru/52843907
без проверки/установки обновлений польза лаунчера сомнительна т.к придется держать на компе мейловскую гадость для этих целей, а дальше развивать уже лениво

Hint из браузера ничего брать не надо, всё что может браузер можно повторить в коде

MadHacker 05.03.2014 20:26

Re: Создание ланчера
 
Ну зря вы так про пользу.
Из этого можно хорошую утилиту для безопасного шаринга акаунта сделать ;)

Hint 05.03.2014 21:21

Re: Создание ланчера
 
Цитата:

Сообщение от Onax (Сообщение 355534)
вот http://rghost.ru/52843907
без проверки/установки обновлений польза лаунчера сомнительна т.к придется держать на компе мейловскую гадость для этих целей, а дальше развивать уже лениво

Hint из браузера ничего брать не надо, всё что может браузер можно повторить в коде

А почему бы не повторить в коде то, что делает игровой центр? Два лишних запроса.

trixiejack 05.03.2014 21:38

Re: Создание ланчера
 
Цитата:

Сообщение от Hint (Сообщение 355539)
А почему бы не повторить в коде то, что делает игровой центр? Два лишних запроса.

Сомнительный вопрос при условии, что лучше бы вы посмотрели исходники выложенные данным пользователем.

Chelikto 02.07.2014 15:40

Re: Создание ланчера
 
Цитата:

Сообщение от wheel (Сообщение 346136)
Разрешите продолжить тему запуска клиента игры.
После небольшого исследования было установлено, что за создание token'а отвечает следующий сценарий:
Код:

https://authdl.mail.ru/sz.php
Псевдонимом для домена authdl.mail.ru является также auth.dl.mail.ru.
При отправке POST-запроса (с использованием SSL) следующего вида:
Код:

POST /sz.php?hint=AutoLogin HTTP/1.1
Host: authdl.mail.ru
User-Agent: Downloader/3700
Content-Type: application/x-www-form-urlencoded
Content-Length: 240
<?xml version="1.0" encoding="UTF-8"?><AutoLogin ProjectId="3001" SubProjectId="0" ShardId="0" Mpop="<Mpop-value>"/>

где <Mpop-value> - значение печенюшки под названием Mpop после аутентификации учётной записи mail.ru
сценарий отправляет в ответ xml-ку следующего вида:
Код:

<?xml version="1.0" encoding="UTF-8"?><AutoLogin PersId="<aa-user-id>" Key="<token>" />
где <aa-user-id> - идентификатор пользователя ArcheAge, <token> - соответственно, token доступа.
Вот...
PS Осталась лишь мелочь - сделать сценарий для автоматической аутентификации пользователей и получения значения печенюшки Mpop
Благодарю за внимание.

Подскажите как вы узнали этот пост запрос?
UPD:
Разобрался. Помогла прога HTTP Analyzer.
Вот так строчка на WF выглядит
Код:

<?xml version="1.0" encoding="UTF-8"?><AutoLogin ProjectId="1177" SubProjectId="0" ShardId="2" Mpop="Mpop Key"/>


Текущее время: 09:51. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot