Приступим непосредственно к способу обхода.
Первым делом нам нужно узнать, как же запускается игра с помощью лаунчера. В результате непродолжительных поисков в интернете, находим заветную строчку:
Так... Что из этого можно понять:
nickname - имя игрока, тут вопросов нет.
session - номер сессии, а вот это уже интересно.
Оба параметра необязательны, но без номера сессии мы не сможем зайти на сервер, этим мы и займемся.
Второй пункт - получить собственный номер сессии.
И так, откуда же берётся сессия?
Сессия генерируется сервером при авторизации через лаунчер и заносится в базу данный, лаунчер запускает клиент используя полученную сессию. Позже, при заходе на сервер игры, сервер игры сверяет передаваемую клиентом сессию с сессией в базе, если они совпадают, то нас пускает на сервер, если нет - пишет ошибку про верефикацию пользователя или иную (bad login).
Генерируется в functions.php следующим кодом.
Код:
function generateSessionId(){
// generate rand num
srand(time());
$randNum = rand(1000000000, 2147483647).rand(1000000000, 2147483647).rand(0,9);
return $randNum;
}
И как же нам получит сессию?
Тут вариантов много. Но я пошёл по самому простому, конечно, не обязательно, что самому лучшему - запустил лаунчер через командную строку для того, чтобы увидеть отладочную информацию, которая зачастую скрыта от глаз обычных игроков (не работает с лаунчарами написанными не на java, используйте сниферы).
Строка запуска лаунчера:
Учтите, что -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing и -XX:+AggressiveOpts - необязательные параметры.
Параметр pause используется для того, чтобы в случае возникновения каких-либо ошибок, приводящих к падению игры, мы могли с ними ознакомиться.
Также учтите, что при использовании .bat файла, он должен находиться в одной папке с лаунчером, ну а при использовании командной строки не забудьте указать полный путь до вашего лаунчера.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Как и ожидалось - отладочная информация есть и её много.
Смотрим на следующую строчку:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Получили то, что нам нужно, а именно номер сессии - 181350217520232926612.
Пункт три. Осталось дело за малым - запустить игру. Берём строку запуска из первого пункта, заменяя параметры на полученные в предыдущем шаге и получаем что-по похожее:
Всё, игра запускается в обход лаунчера. Проверяем работоспособность, меняем minecraft.jar на модифицированный и играем. Также в случае, если тестовый сервер имеет свой собственный лаунчер, а также папку, куда устанавливается игра, отличную от .minecraft, не забудьте изменить необходимую информацию в строке запуска. Не забывайте также и о том, что номер сессии имеет короткий период жизни, время от времени его необходимо обновлять.
Пункт четыре. Вместо послесловия. Чтобы каждый раз не заменять minecraft.jar после получения номера сессии, можем поправить нашу строку запуска:
Я являюсь автором этой статьи, и не хорошо прикидываться мной и изменять элементы статьи (могу подтвердить авторство на форуме источнике [Ссылки могут видеть только зарегистрированные пользователи. ])
Хорошо хоть источник оставил.
________________
Конфликт с головой.
10.42 знает всё
Последний раз редактировалось dark32; 15.04.2012 в 10:46.