Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Утилита [1.7.10 - 26.1.2] Authlib SkinFix - Авторизация и работающие скины своими руками

Метки:
Теги Теги
authlib skin yggdrasil
И еще вопрос мимозаглянувшим: кому-то будет интересна тема с python-сервером авторизации для Yggdrasil? Чтобы дома не накатывать целый WAMP-сервер, а держать 1 Python-скрипт и базу данных на SQLite (или вообще в текстовом формате).
На счёт питона хз, я на Typescript/Node.js пишу похожее. В принципе норм, вот только меня напрягает момент с сигнатурами, всё вроде работает, подписывает отлично, но аучлиба ни в какую не хочет их хавать, а так как я в Java не бум-бум, можно сказать что зашёл в тупик (хотя на сервер один хрен заходит, да и скины уже тянутся с запроса `profile`)
 
В принципе норм, вот только меня напрягает момент с сигнатурами, всё вроде работает, подписывает отлично, но аучлиба ни в какую не хочет их хавать, а так как я в Java не бум-бум, можно сказать что зашёл в тупик (хотя на сервер один хрен заходит, да и скины уже тянутся с запроса `profile`)
Так а зачем подписывать скины, если требование подписи можно вырезать из authlib?
 
Так а зачем подписывать скины, если требование подписи можно вырезать из authlib?
Можно конечно, но хотелось минимально отходить от оригинала, да и не просто так же туда это добавили, хотя...
 
Можно конечно, но хотелось минимально отходить от оригинала, да и не просто так же туда это добавили, хотя...
Это туда добавили, чтобы поставить еще одну палку в колёса пиратских серверов. И если ты знаешь, как работает цифровая подпись, то понимаешь, что приватный ключ мочанги никому не отдадут, а без него смысла в этой подписи никакой.
 
Это туда добавили, чтобы поставить еще одну палку в колёса пиратских серверов. И если ты знаешь, как работает цифровая подпись, то понимаешь, что приватный ключ мочанги никому не отдадут, а без него смысла в этой подписи никакой.
Ну да, поэтому я генерю свои ключи))
 
Методом тыка и ковыряния сорцов стало известно следующее:
В аучлибе используется rsa ключ с длиной 4096
У себя в ноде для генерации пары использую crypto.generateKeyPairSync()

upload_2021-5-29_18-50-33.png

При использовании публичного ключа типа pkcs1 майн отказывается запускаться, а при spki запускается, но не работает проверка сигнатуры)
Такие вот дела
 
хотелось минимально отходить от оригинала
Ну да, поэтому я генерю свои ключи))
tenor.gif

Просто не используй цифровую подпись. Она абсолютно бесполезна.
 
Пхпхп, ок
Я просто тут слышал одну байку, о том что в скины можно малварь просунуть, хотя вопрос, а как её запускать то?:lol:
Но я думаю что и вайтлиста для проверки было бы достаточно
 
Можно конечно, но хотелось минимально отходить от оригинала, да и не просто так же туда это добавили, хотя...
Добавили, чтоб вирусняк не качали вместо скинов поменяв url. Ведь теперь ссылка передается от сервера. Потом поняли, что эта подпись прожорливая и сделали ее вечной, но до сих пор никак не уберут совсем.
 
Последнее редактирование:
Пхпхп, ок
Я просто тут слышал одну байку, о том что в скины можно малварь просунуть, хотя вопрос, а как её запускать то?:lol:
Но я думаю что и вайтлиста для проверки было бы достаточно
Да никак, но игроков потеряешь, когда у них начнет антивирус орать.
 
Поборол я таки эту проблему, сигнатура проходит проверку, теперь хоть свой аналог лицензии подымай :lol:
 
Обновление до Minecraft v1.17
В архив добавил библиотеку authlib-2.3.31-skinfix.jar для Minecraft v1.17.

Замечания:
  • Нашел уже 2 метода проверки: isAllowedTextureDomain() и isDomainOnList(). Оба порезал;
  • Забыл добавить строку SkinFix by TaoGunner, пересобирать лень :confused:;
  • Теперь для запуска ванильного сервера 1.17 требуется Java 16 взамен устаревшей Java 8;
  • Работоспособность библиотеки проверил на ванильной локалке - работает.
Менять пути InClassTranslator'ом не пробовал, у кого будут проблемы с запуском - пишите.
 
Сделал по гайду, всё работает. Правда были проблемы, но из-за моей криворукости. Автору спасибо
 
Что делать, если на версии 1.12.2 Forge не видно скины других игроков, но при этом все видят свои? У клиента и minecraft_server.1.12.2.jar аутлиба пропатчена. В конфиге online-mode=true, а также в батнике прописано -o true?
 
Что делать, если на версии 1.12.2 Forge не видно скины других игроков, но при этом все видят свои?
  • Почистить папку assets/skins . Перепроверить, что скины загружаются и хранятся в правильном виду (в виде хеша)
  • Включить debug в скриптах (если используешь мои), попробовать пологиниться, а затем глянуть, идут ли обращения на все 3 скрипта: join, hasJoined, profile.
  • Попробовать другие способы смены скинов, их на ресурсе море.
  • И крайний случай, когда надежды нет - обратиться ко мне. Звонок платный :lol:
в батнике прописано -o true?
Вообще без понятия, что означает этот аргумент? Впервые о нём слышу.
 
Включить debug в скриптах (если используешь мои), попробовать пологиниться, а затем глянуть, идут ли обращения на все 3 скрипта: join, hasJoined, profile.
Вообщем ошибка оказалась в моих скриптах (самописных). Долгую историю того, как твой совет 'сделать dubug' привёл меня к своей ошибке (в скрипте, который я написал чёрти-когда) я расписывать не собираюсь. Главное, что это разрешило проблему. Спасибо.
 
Можно ли узнать ссылки на скины и авторизацию в уже скомпилированом лаунчере сашка?
Если да то как?
 
Обновление v1.05 от 08.01.2022
  • database.sql: добавлено свойство UNIQUE для полей username и uuid. Это запрещает создавать одинаковые имена пользователей и UUID;
  • Изменения для библиотек версий от 1.5.25 и выше:
    • Библиотеки заново пересобраны с проверкой работоспособности;
    • Все нужные пути теперь имеют свойства private static final для возможности редактирования в онлайн-редакторе;
    • Содержимое папок META-INF обновлено для предотвращения ошибок от log4j;
Для информации:
  • Ванильный сервер minecraft v1.18.1 внутри себя хранит все библиотеки, распаковывая их при запуске. Для работы исправленной версии библиотеку нужно менять внутри jar-файла сервера;
  • Библиотеки последних версий не редактируются с помощью InClassTtanslator'а, потому что собраны для JAVA 16-17. Используйте другие редакторы;
 
  • Библиотеки последних версий не редактируются с помощью InClassTtanslator'а, потому что собраны для JAVA 16-17. Используйте другие редакторы;

Не проще ли вынести это всё на гитхаб? Исходный код редачить всяко проще.
 
Не проще ли вынести это всё на гитхаб? Исходный код редачить всяко проще.
Для тех, кто желает порезать защиту самостоятельно - ссылки на исходный код выложу. Хранить на своем гитхабе классы библиотеки с вырезанной защитой, код которой принадлежит mojang считаю слегка "серой" зоной.
Тут я выложил уже готовую реализацию с необходимыми скриптами, бери и пользуйся.
 

Поделиться этой страницей

Назад
Верх