Гайд Разбор проекта LoliLand для Minecraft

Начинающий
Статус
Оффлайн
Регистрация
15 Окт 2021
Сообщения
129
Реакции[?]
16
Поинты[?]
17K
это мой первый раз так что не судите строго ребятки
вся остальная информация находиться на Github repo
Пожалуйста, авторизуйтесь для просмотра ссылки.


Структура проекта

Проект LoliLand использует собственный лаунчер для запуска модифицированных сборок Minecraft и включает защиту от установки сторонних модификаций.

Каждая сборка содержит LoliMod, обеспечивающий ее функциональность. LoliMod является общим для всех сборок.

Анализ лаунчера

Лаунчер представляет собой JAR-файл (launcher.jar), расположенный по пути %appdata%\.loliland\launcher.jar.

Он обфусцирован, но строки кода остаются читаемыми.

При запуске лаунчер отправляет данные о конфигурации ПК на API сервер.

JSON:
{"operatingSystem":{"name":"Windows 11","arch":"amd64","isX64":true},"processor":{"id":"*********","name":"AMD Ryzen 5 5600X 6-Core Processor ","physicalCount":6,"logicalCount":12,"freq":3701000000},"baseboard":{"manufacturer":"********","name":"Micro-Star International Co., Ltd.","serialNumber":"**************","hardwareUUID":"**************"},"graphicsCards":[{"name":"Meta Virtual Monitor","vendor":"Meta Inc.","virtualMemory":0},{"name":"NVIDIA GeForce GTX 1080 Ti","vendor":"NVIDIA","virtualMemory":4293918720}],"displays":["24G2WG3-: 52 x 29 cm (20,5 x 11,4 in)","HP ZR22w: 48 x 27 cm (18,9 x 10,6 in)"],"totalMemory":34282242048}
После авторизации лаунчер выполняет следующие запросы:

  • Авторизация:
    Пожалуйста, авторизуйтесь для просмотра ссылки.
    Результат: {"data":{"votes":0},"type":"success"}
  • Параметры запуска:
    Пожалуйста, авторизуйтесь для просмотра ссылки.
  • IP серверов:
    Пожалуйста, авторизуйтесь для просмотра ссылки.

Процесс запуска клиента лаунчером:
  • Проверка файлов: updateVerify: [libraries, natives, mods, coremods, client.jar] - лаунчер определяет список файлов и их хеши для проверки обновлений.
  • Проверка версий конфигураций: updateVersion: {config/_=3.1, optionsof.txt=2.0, lang/_=1.1, options.txt=2.0} - проверяются версии конфигурационных файлов.
  • Локальные хеши: updateVersion local hashes: {} - вывод локальных хешей файлов.
  • Удаление файлов: toRemove: [] - определение файлов для удаления (используется для защиты).

Анализ клиента (LoliMod)

LoliMod отвечает за основные функции клиента, включая:
  • Магазин
  • Кастомный чат
  • GUI
  • Обработку сетевых пакетов сервера

При запуске, LoliMod загружает модули обработки пакетов сервера:

Код:
[18:49:43] [Client thread/INFO] [LoliLand]: On Server PreInit load module: l0lIIOLAND
[18:49:43] [Client thread/INFO] [LoliLand]: On Server PreInit loaded module: l0lIIOLAND
Анализ клиента (client.jar)

Клиент (client.jar) при запуске загружает моды и проверяет их хеши (если этого файла нету то мод не считается и не загружается).

Каждый мод содержит файл META-INF\mc_class_data_hash.bin со списком хешей классов. Пример содержимого:

Код:
00000000 E1 88 43 78:68 2F 09 A7|84 1C 8F 9D:50 2F 28 D3
00000010 A1 E4 E1 BB:18 13 B5 76|45 15 4E 11:E3 99 84 B4
00000020 8B BF 00 7E:D6 AD 87 F9|90 EC AE E9:D1 D7 4A CE
00000030 C2 40 3E 05:FC 8A 05 92|51 19 00 56:BA 7F 7C EE
Обход защиты лаунчера и клиента

Обход проверки хешей лаунчера:
  • Откройте launcher.jar.
  • Найдите в коде строку toRemove: .
  • Удалите код, отвечающий за данный этап проверки файлов.

Обход верификации модов клиента:
  • Откройте %userprofile%\loliland\updates\clients\techno_magic\client.jar (путь зависит от сборки).
  • Найдите строку Examining file %s for potential mods.
  • Замените условие if (ClassDataDumpParser.HAS_DUMP) { на if (false) { для принудительной загрузки модов без хешей.

Вывод:

Лаунчер и клиент используют простые методы защиты, которые можно обойти. Однако, использование читов на проекте LoliLand вероятно не принесет желаемого результата.

Байпасы

Обход ваниша (отображение всех игроков в TAB-листе, включая в ванише):
  • Найдите строку loliland/gui/modules/tablist/vanish.png.
  • Удалите условие, в котором находиться эта строка.
  • Повторите для всех иконок (fly.png, god.png, vanish.png).


Спасибо за прочтение 🤙
 
Начинающий
Статус
Оффлайн
Регистрация
15 Окт 2021
Сообщения
129
Реакции[?]
16
Поинты[?]
17K
пожалуйста не пишите мне в личку насчёт того как изменить файлы
я не могу помочь каждому, всё что я вам скажу и так есть в интернете
чтобы поменять класс файл используйте Recaf
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Пользователь
Статус
Оффлайн
Регистрация
22 Мар 2019
Сообщения
220
Реакции[?]
36
Поинты[?]
0
пожалуйста не пишите мне в личку насчёт того как изменить файлы
я не могу помочь каждому, всё что я вам скажу и так есть в интернете
чтобы поменять класс файл используйте Recaf
Пожалуйста, авторизуйтесь для просмотра ссылки.
Я конечно гайды ни разу не писал, но мне кажется тебе стоило бы ответить, ведь это гайд. И сформируется FAQ и любой сможет повторить.
 
Начинающий
Статус
Оффлайн
Регистрация
15 Окт 2021
Сообщения
129
Реакции[?]
16
Поинты[?]
17K
Я конечно гайды ни разу не писал, но мне кажется тебе стоило бы ответить, ведь это гайд. И сформируется FAQ и любой сможет повторить.
мне было необходимо поставить префикс в тему
1739205419241.png
это не гайд а статья, без инструкций
 
Пользователь
Статус
Оффлайн
Регистрация
22 Мар 2019
Сообщения
220
Реакции[?]
36
Поинты[?]
0
Для тех кто хочет повторить: ( для Recaf )
1. Проверьте Supports compiler & Supports Attach [ Кликнуть в Help -> System information ].
1.1. Если пишет false вам нужно заменить java на другую, гайд есть на гитхабе программы.
2. Первые шаги придётся делать только в байткоде, кликайте на метод ( private void/static/и т.д. [название метода] ), затем Edit with assembler.
2.2. На будущее, нажимайте Ctrl + S в файле, если пишет error, файл обфусицирован, изменяйте только в байткоде.
3. Возможно это я не понял что именно нужно убрать в лаунчере, но мне пришлось лезть в другой класс чтобы убрать замену файлов.
 
Пользователь
Статус
Оффлайн
Регистрация
23 Авг 2021
Сообщения
541
Реакции[?]
53
Поинты[?]
22K
структура темы неплохая, но информации маловато да и разбирать сервер у которого защиты то толком нет - )))))))))))))))))))))
 
Новичок
Статус
Оффлайн
Регистрация
18 Янв 2019
Сообщения
1
Реакции[?]
0
Поинты[?]
0
У меня инжектор чита стоит, который не видит этот проект.
Все остальные видит, по типу streamcraft, lemoncraft, excaliburcraft
 
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2023
Сообщения
89
Реакции[?]
2
Поинты[?]
2K
Добавлю о других мелочах, которые есть на лолиленде.
1. Класс для проверки зарегистрированных событий. Если обнаруживаются ненужные события, он отправляет их на сервер. Также в этом классе есть проверка значения player.stepHeight, и если оно превышает заданный порог X, информация отправляется на сервер.
2. HWID система лолиленда. Она действует как в лаунчере, так и в клиентах. Система собирает информацию о объёме памяти, видеокарте, операционной системе, процессоре и подключённых дисплеях (включая их названия). Подмена этих данных осуществляется достаточно просто.
3. Почему большинство читов не работает в лолиленде? В лолиленде была изменена стандартная библиотека Lwjgl: вместо org.lwjgl.input.Keyboard используется org.lwjglx.input.Keyboard. Если использовать старую версию, возникнет ошибка UnsupportedOperationException.
 
Сверху Снизу