OpSec
Клиентский мод для Minecraft, обеспечивающий защиту от клиентского фингерпринтинга, трекинговых эксплойтов и другие функции, ориентированные на конфиденциальность.
[!WARNING] Это проект для души, в основном созданный с помощью ИИ.
[!IMPORTANT] Поддельные фишинговые сайты и Discord-серверы распространяют троянизированные сборки OpSec. Загружайте OpSec только из этих официальных источников:
- Modrinth
- GitHub Releases
- CurseForge (обновляется реже)
Сборки из любых других источников не являются официальными и могут быть вредоносными.
Что он делает
- Выдавать себя за ванильный клиент — Устанавливает название клиента как vanilla и блокирует все обнаружения модов
- Спуфинг каналов — Условно блокирует сетевые каналы модов для предотвращения обнаружения
- Фильтрация известных паков — Условно удаляет идентификаторы встроенных паков из конфигурационного рукопожатия
- Изоляция кэша паков — Изолирует кэш ресурс-паков для каждой учётной записи, чтобы предотвратить отслеживание
- Блокировка локальных URL — Блокирует перенаправления ресурс-паков на локальные/частные адреса
- Обход требования серверного пака — Позволяет пользователю переключать обязательные серверные ресурс-паки как клиентские
- Удаление переопределений шейдеров модов — Удаляет переопределения шейдеров из серверных ресурс-паков, нацеленные на неавторизованные моды
- Защита разрешения клавиш — Защищает от обнаружения модов через разрешение клавиш в любых серверных пакетах
- Исправление Meteor — Отключает ошибочную защиту разрешения клавиш Meteor Client
- Белый список модов — Автоматически или вручную исключает моды из защиты
- Управление подписыванием чата — Настраивает поведение подписывания сообщений чата
- Менеджер учётных записей — Переключение между учётными записями Minecraft с помощью токенов сессии
- Блокировка телеметрии — Отключает сбор данных, отправляемых в Mojang
Требования
- Minecraft 1.20 – 26.1.2
- Fabric Loader 0.16.0+ (0.18.5+ для MC 26.1.x)
- Fabric API (соответствующая версии Minecraft)
Установка
- Установите Fabric Loader для вашей версии Minecraft
- Загрузите последнюю версию Fabric API для вашей версии Minecraft
- Загрузите последний файл
opsec-[minecraft_version]+[version].jarсо страницы Релизов - Поместите оба мода в папку
.minecraft/mods - Запустите Minecraft
Конфигурации
Меню настроек доступно через кнопку OpSec в заголовке меню выбора многопользовательского сервера или через Mod Menu.
Если настройки были изменены во время подключения к серверу, рекомендуется переподключиться к серверу, чтобы изменения вступили в силу.
Вкладка Защита
| Настройка | Описание |
|---|---|
| Выдавать себя за ванильный клиент | Включить/отключить Выдавать себя за ванильный клиент |
| Изолировать кэш паков | Включить/отключить изоляцию кэша |
| Блокировать локальные URL паков | Включить/отключить блокировку локальных URL |
| Обход требования серверного пака | Настроить поведение обхода серверного пака: • MANUAL (по умолчанию): Стандартное ванильное поведение при отправке. Вы всё ещё можете переключать любой серверный пак. • ASK: Серверный ресурс-пак не применяется, но появляется экран согласия с запросом, следует ли применить пак(и) • ALWAYS ON: Серверный ресурс-пак не применяется по умолчанию. Вы всё ещё можете переключать любой серверный пак |
| Удалять переопределения шейдеров модов | Включить/отключить удаление переопределений шейдеров |
| Очистить кэш | Удалить все кэшированные серверные ресурс-паки |
| Спуфинг разрешения клавиш | Включить/отключить защиту разрешения клавиш |
| Поддельные стандартные клавиши | Возвращать стандартные ванильные значения клавиш вместо фактических назначений |
| Исправление Meteor | Отключить сломанную защиту разрешения клавиш Meteor Client (отображается только при установленном Meteor) |
| Режим подписи | Настроить поведение подписи чата: • OFF: Удалять подписи (максимальная конфиденциальность) • ON: Стандартное поведение Minecraft • AUTO: Подписывать только при необходимости (рекомендуется) |
| Отключить телеметрию | Включить/отключить блокировку телеметрии |
Вкладка Белый список
| Настройка | Описание |
|---|---|
| Режим белого списка | Выберите поведение белого списка: • BLOCK ALL: Весь контент модов заблокирован • AUTO: Моды, имеющие сетевые каналы, автоматически добавляются в белый список (по умолчанию) • CUSTOM: Ручной выбор модов для добавления в белый список |
| Установленные моды | Включение/отключение отдельных модов для исключения их из защиты (только в режиме CUSTOM) |
Вкладка Разное
| Настройка | Описание |
|---|---|
| Показывать оповещения | Отображать сообщения в чате при обнаружении отслеживания |
| Показывать уведомления | Отображать всплывающие уведомления о важных событиях |
| Логировать обнаружения | Записывать все события обнаружения в игровой журнал для прозрачности |
| Отладочные оповещения | Показывать оповещения для всех проверенных клавиш, даже неизменённых |
| Отладочная команда | Включить отладочную команду /opsec. По умолчанию выключена. |
Вкладка Учётные записи
| Настройка | Описание |
|---|---|
| Сохранённые учётные записи | Список добавленных учётных записей с кнопками входа/выхода и удаления |
| Обновить все | Проверить все токены учётных записей (недействительные токены помечаются красным) |
| Добавить токен сессии | Добавить новую учётную запись с помощью токена сессии (доступа) |
| Импорт | Импортировать учётные записи из JSON-файла |
| Экспорт | Экспортировать учётные записи в JSON-файл |
Отладочные команды
Команда /opsec по умолчанию выключена (включите её в разделе Разное → Отладочная команда). Когда она включена, используйте /opsec в игре для доступа к отладочной информации:
| Команда | Описание |
|---|---|
/opsec | Показать доступные команды |
/opsec info | Показать обзор всех отслеживаемых модов |
/opsec info | Показать подробную информацию о конкретном моде (ключи перевода, клавиши, каналы, известные паки, шейдеры) |
/opsec channels | Показать все отслеживаемые сетевые каналы со статусом в белом списке |
Понимание оповещений
- Обнаружена эксплуатация разрешения клавиш: Сервер проверяет ваши клавиши
- Обнаружен фингерпринтинг ресурс-пака: Обнаружен подозрительный URL ресурс-пака
- Обнаружено сканирование локального URL: Ресурс-пак нацелен на ваш локальный/частный адрес
Описание функций
Выдавать себя за ванильный клиент
Серверы могут запрашивать название вашего клиента, чтобы определить, используете ли вы модифицированный клиент. OpSec обеспечивает истинный ванильный спуфинг, блокируя все разрешения клавиш модов, сетевые каналы и идентификаторы известных паков (сохраняя ванильные).
- ON — Вы выглядите как немодифицированный клиент Minecraft
- OFF — Вы выглядите как стандартный клиент Fabric (по умолчанию)
По умолчанию выключено, чтобы разрешить автоматическое добавление модов в белый список (добавление модов, имеющих сетевые каналы).
Изоляция кэша паков
Основано на LiquidBounce.
Обязательные серверные ресурс-паки могут использоваться для фингерпринтинга экземпляра клиента между учётными записями.
https://alaggydev.github.io/posts/cytooxien/
Вместо хранения всех ресурс-паков в общем кэше (~/.minecraft/downloads/), OpSec создаёт отдельные каталоги кэша для каждого UUID учётной записи.
Блокировка локальных URL
Производное от ExploitPreventer от NikOverFlow
Вредоносные серверы могут отправлять URL ресурс-паков, которые перенаправляют на вашу локальную сеть для проверки локальных устройств и служб.
https://alaggydev.github.io/posts/cytooxien/
OpSec проверяет, нацелен ли запрос перенаправления или обычный запрос на локальный адрес, и блокирует соединение.
Обход требования серверного пака
Серверы могут отправлять обязательные ресурс-паки, которые клиент вынужден применить. Отказ от них или переключение обязательных серверных ресурс-паков невозможно на ванильном клиенте. А фиктивное принятие может быть обнаружено через разрешение клавиш, проверяющее ответ клиента на клавишу ресурс-пака.
Minecraft по-прежнему принимает и загружает эти паки как обычно, но OpSec позволяет вам переключать текстуры пака на уровне клиента. Языковой файл серверного ресурс-пака сохраняется, потому что серверы могут проверять ключи перевода (например, через {"translate": "some.pack.key"}), чтобы определить, применён ли пак на самом деле, и ванильный клиент с загруженным паком разрешил бы эти ключи в определённое паком значение.
С установленным OpSec серверные ресурс-паки отображаются как обычная запись, переключаемая пользователем в меню ресурс-паков, так что вы можете переключаться между облегчённым и полностью загруженным состоянием.
Режимы:
- MANUAL (по умолчанию): Обязательные паки применяются полностью, как в ванильной версии, при отправке. Необязательные паки следуют стандартной ванильной семантике переключения. Пользователь всё ещё может отключить любой серверный пак в меню паков, чтобы удалить его, сохранив загруженным языковой файл.
- ASK: Обязательные паки удаляются при отправке, и появляется наложение согласия с запросом
[Продолжить]/[Загрузить пак по-настоящему]. - ALWAYS ON: Все серверные паки удаляются при отправке. Без наложения. Вы всё ещё можете включить их обратно.
Удаление переопределений шейдеров модов
Некоторые моды (например, Meteor Client) отображают свой графический интерфейс с помощью собственных шейдеров, загружаемых через менеджер ресурсов Minecraft. Принудительный серверный ресурс-пак может переопределить собственные файлы мода, чтобы добавить шейдеры под этот мод, либо затемнить GUI мода, либо вызвать сбой клиента с помощью некорректных шейдеров, либо GPU DoS, что также позволяет определить, что мод установлен.
OpSec удаляет переопределения шейдеров из серверных паков по пути assets/ для любого установленного мода, который не находится в белом списке, так что менеджер ресурсов возвращается к собственным шейдерам мода. Остальная часть пака загружается нормально, поэтому это работает даже тогда, когда сервер принудительно применяет пак, чтобы сделать Обход требования серверного пака непригодным для использования.
Ванильные шейдеры (minecraft) никогда не затрагиваются, а добавление мода в белый список позволяет пропустить серверное переопределение шейдеров.
Защита разрешения клавиш
Серверы могут отправлять переводимый текст, содержащий ключи, такие как key.attack или key.hide_icons, в любом серверном пакете, чтобы проверить, какие клавиши у вас назначены или какие элементы интерфейса модов ваш клиент может разрешить. Это может раскрыть установленные моды клиента.
https://wurst.wiki/sign_translation_vulnerability
OpSec отслеживает, когда ключи перевода разрешаются во время обработки серверного пакета, и блокирует их разрешение Minecraft на основе выбранного режима названия клиента:
Поведение при выдаче себя за ванильный клиент
- ON: Блокирует все ключи модов, возвращает стандартные значения клавиш для ванильных ключей
- OFF: Разрешает ключи Fabric API и модов из белого списка, блокирует всё остальное
Когда Поддельные стандартные клавиши отключены, ванильные клавиши разрешаются в их фактические значения.
Примеры
Спуфинг клавиш модов (Возвращает сырые ключи/значение fallback вместо значений клавиш):
[key.meteor-client.open-commands] '.'→'key.meteor-client.open-commands'
[key.meteor-client.open-gui] 'Right Shift'→'key.meteor-client.open-gui'Спуфинг ванильных клавиш с включёнными Поддельными стандартными клавишами (Возвращает стандартные клавиши):
[key.hotbar.6] 'Q'→'6'
[key.hotbar.7] 'E'→'7'
[key.hotbar.8] 'R'→'8'Исправление Meteor
Устаревший клиент Meteor имеет встроенную реализацию защиты клавиш, которая может привести к гарантированному обнаружению при проверке разрешения клавиш.
Сервер может использовать специально созданный зонд ключа перевода со значением fallback, и вместо ожидания сырого ключа от ванильного клиента, он ожидает именно значение fallback. Клиент Meteor возвращает сырой ключ вместо значения fallback из серверного зонда.
Когда сервер использует эксплойт таблички со значением fallback на Meteor Client:
'key.meteor-client.open-gui' 'Right Shift'→'key.meteor-client.open-gui'Как на самом деле выглядел бы ответ ванильного клиента:
'key.meteor-client.open-gui' '⟦FALLBACK⟧'→'⟦FALLBACK⟧'Временное исправление OpSec для Meteor заключается в добавлении AbstractSignEditScreenMixin Mixin в чёрный список, чтобы отключить сломанную защиту разрешения клавиш Meteor. Это позволяет защите OpSec взять на себя управление, которая уже правильно обрабатывает fallback, чтобы соответствовать ванильному ответу.
Совместимость с ExploitPreventer
Для пользователей, которые предпочитают основную реализацию защиты ExploitPreventer, но всё ещё нуждаются в дополнительных функциях OpSec, оба мода можно установить вместе. Перекрывающиеся функции автоматически отключаются, чтобы EP обрабатывал их; обратите внимание, что вы потеряете функции OpSec, такие как спуфинг каналов. Следующие функции OpSec передаются EP:
- Спуфинг названия клиента
- Спуфинг каналов
- Фильтрация известных паков
- Изоляция кэша паков
- Блокировка локальных URL
- Защита разрешения клавиш
- Белый список модов
Эти настройки выделены серым цветом на экране конфигурации, но ваши сохранённые предпочтения сохраняются. Если вы удалите EP позже, они восстановятся автоматически.
Функции, которые не пересекаются, остаются полностью функциональными: оповещения, подпись чата, менеджер учётных записей, блокировка телеметрии, Удаление переопределений шейдеров модов и Исправление Meteor.
Спуфинг каналов
Серверы могут запрашивать ваши зарегистрированные сетевые каналы, чтобы определить, какие моды у вас установлены.
OpSec может условно блокировать каналы модов, зарегистрированные на сервере, чтобы предотвратить обнаружение. Эта функция включена по умолчанию, её поведение контролируется белым списком модов.
Фильтрация известных паков
Серверы могут проверять идентификаторы паков, внедрённые модами, которые некоторые моды раскрывают, чтобы определить, используете ли вы модифицированный клиент или определённые моды. OpSec перехватывает исходящий ответ ServerboundSelectKnownPacks и удаляет записи, принадлежащие модам, не входящим в белый список. Реальные ванильные и автоматически добавленные в белый список паки всё ещё проходят.
Поведение при выдаче себя за ванильный клиент
- ON: Удаляет все паки, внедрённые модами.
- OFF: Сохраняет паки для модов из белого списка, удаляет остальные.
[!NOTE] Активно только на клиентах, где присутствует хук известных паков Fabric (MC 1.21.11+ с современной fabric-api).
Белый список модов
Некоторым модам для правильной работы требуется связь с сервером (например, VoiceChat, быстрые перемещения Xaero's Minimap). Белый список позволяет вам исключить определённые моды из спуфинга каналов, защиты разрешения клавиш, фильтрации известных паков и удаления переопределений шейдеров.
