Leaf Документация правил детекта

Технический справочник правил статического анализа. Узнайте, как каждая механика чита работает внутри клиента Minecraft и какие сигнатуры оставляет в скомпилированном Java-байткоде.

62
Описанных правил
9
Категорий
100%
Анализ байткода

Бой (Combat) 11 правил

Aimbot Rotation Modification

Aim_Rotation_Applied Бой (Combat)
HIGH +9 очков

Рассчитывает углы поворота (yaw и pitch) в сторону хитбокса противника с помощью тригонометрических формул (atan2, asin) и напрямую изменяет углы обзора игрока, мгновенно приклеивая прицел к цели.

Auto Respawn Anchor Exploder

Auto_Anchor Бой (Combat)
HIGH +8 очков

Автоматизирует взрыв якорей возрождения в обычном мире (Overworld). Моментально ставит блок якоря, заряжает его светящимся камнем и активирует пустой рукой, вызывая мощнейший взрыв в течение 1 тика.

Auto Shield Breaker

Auto_Shield_Breaker Бой (Combat)
HIGH +8 очков

Мгновенно переключает активный слот в хотбаре на топор, как только противник поднимает щит, наносит удар топором (вызывая оглушение щита на 5 секунд) и возвращает меч обратно за 1 игровой тик.

Critical Hit Sprint Reset

Crit_Sprint_Reset Бой (Combat)
HIGH +9 очков

В ванильной боевке Minecraft критический удар наносит +50% базового урона, но требует, чтобы игрок находился в падении и строго НЕ бежал на спринте. Этот чит сбрасывает флаг спринта (setSprinting(false)) ровно на тик перед отправкой пакета атаки, обеспечивая 100% гарантированные криты на полной скорости бега без замедления.

Insta Cart

Insta_Cart Бой (Combat)
HIGH +8 очков

В ванильном PvP Minecraft подрыв вагонетки с ТНТ (Carting) требует точной ручной последовательности действий: установки рельса под ноги противника, установки на него вагонетки с динамитом и мгновенного подрыва выпущенной из лука стрелой, выстрелом заряженного арбалета или огнивом. Модификации с функцией Insta Cart полностью автоматизируют эту боевую комбинацию в пределах нескольких тиков. Мод автоматически отслеживает натяжение тетивы, программно спускает выстрел, доводит угол обзора (pitch) под ноги цели, переключает слоты хотбара и через эмуляцию нажатий клавиш выставляет рельс и вагонетку ровно по траектории стрелы, нанося мгновенный смертельный урон.

KillAura Target Selector

KillAura_Target_Sorting Бой (Combat)
HIGH +8 очков

Перебирает список загруженных сущностей, фильтрует доступных игроков и мобов, сортирует их по наименьшей дистанции или уровню здоровья (Comparator) и циклично распределяет авто-удары по целям.

No Jump Delay

No_Jump_Delay Бой (Combat)
HIGH +7 очков

В ванильном Minecraft при каждом прыжке сущности переменная `LivingEntity.jumpingCooldown` устанавливается в значение 10 тиков (0.5 секунды). Пока таймер больше нуля, игрок не может совершить следующий прыжок сразу после приземления. Модификации с функцией No Jump Delay сбрасывают `jumpingCooldown` в 0 на каждом тике, что убирает паузу между прыжками, позволяет непрерывно распрыгиваться (BunnyHop) и сохранять максимальную скорость спринт-прыжков.

Packet Micro-Jump Criticals

Packet_Criticals_Microjump Бой (Combat)
HIGH +8 очков

Отправляет искусственные пакеты микропрыжка (PlayerMoveC2SPacket.PositionAndOnGround со смещением y + 0.003 и флагом onGround = false) прямо в момент атаки, форсируя 100% критический урон на сервере даже при неподвижном стоянии на земле или в паутине.

Silent Rotation Packet Spoofing

Silent_Rotation_Packet Бой (Combat)
HIGH +9 очков

Формирует модифицированные сетевые пакеты движения (PlayerMoveC2SPacket) с углами наведения на цель и отправляет их на сервер, оставляя локальную камеру игрока неподвижной. На экране игрок смотрит прямо, но удары наносятся по целям сзади или сбоку.

Crosshair Triggerbot

TriggerBot_Crosshair Бой (Combat)
HIGH +8 очков

Автоматически наносит удар в ту же миллисекунду, когда луч прицела пересекает хитбокс противника. Полностью исключает задержку человеческой реакции (~150-250мс), обеспечивая гарантированный первый удар в дуэлях.

Raycast Triggerbot

TriggerBot_Raycast Бой (Combat)
HIGH +8 очков

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

Кристаллы (Crystal) 1 правил

Auto End Crystal Exploder

Auto_Crystal Кристаллы (Crystal)
HIGH +9 очков

В ванильном Minecraft кристаллы Края, установленные на обсидиан или бедрок, детонируют при нанесении удара, нанося разрушительный взрывной урон в радиусе поражения (более 10 сердец в эпицентре). В соревновательном режиме «кристального PvP» игроки используют это для быстрого устранения соперников, вручную чередуя установку обсидиана, размещение кристалла правой кнопкой мыши и мгновенный удар левой кнопкой мыши. Auto_Crystal автоматизирует данный боевой цикл. В исследованном модуле `com.larpclient.module.impl.AutoCrystalModule` клиент вызывает `onTick()` на каждом игровом такте. При удержании клавиши активации модуль проверяет текущий объект под прицелом игрока. Если обнаружен кристалл (`class_1511`) или опорный блок обсидиана (`class_2246.field_10540`), метод `serviceBase()` либо взрывает существующий кристалл через `tryBreak()`, либо выбирает кристалл (`class_1802.field_8301`) в хотбаре и устанавливает его с помощью `BlockHelper.interactBlock()`. Метод `tryBreak()` проверяет предельную дистанцию `range`, вызывает атаку `attackEntity(player, crystal)` (`method_2918`) и анимацию руки (`method_6104`) с учетом таймеров задержки (`breakDelay`, `placeDelay`). Это позволяет чит-клиенту производить взрывы с нечеловеческой скоростью и точностью.

Эксплойты (Exploits) 8 правил

Client-Side Trap Entity Despawner (AntiTrap)

Anti_Trap_Entity_Despawn Эксплойты (Exploits)
HIGH +8 очков

Удаляет стойки для брони и вагонетки из клиентского мира через Entity.remove(), снимая блокировку прицела и луча взаимодействия (raycast). Это позволяет беспрепятственно атаковать врагов, взрывать кристаллы и кидать эндер-жемчуг сквозь спам-ловушки из сущностей.

Arrow / TNT Velocity Packet Exploit

Arrow_TNT_Exploit Эксплойты (Exploits)
HIGH +8 очков

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

FastBreak Block Destruction Exploit

Fast_Break_Exploit Эксплойты (Exploits)
HIGH +8 очков

В режиме выживания время добычи блока определяется его твердостью, характеристиками инструмента и эффектами игрока (Спешка, Утомление). При разрушении клиент отправляет серверу пакеты `PlayerActionC2SPacket` со статусами `START_DESTROY_BLOCK`, `ABORT_DESTROY_BLOCK` и `STOP_DESTROY_BLOCK`. На стороне сервера метод `ServerPlayerInteractionManager.processBlockBreakingAction()` подсчитывает прошедшие тики с момента начала копки и рассчитывает прогресс через `calcBlockBreakingDelta()`. Сервер подтверждает поломку только при достижении прогресса 1.0 (100%). В исследованном модуле (`com.example.timer.mixin.ServerPlayerInteractionManagerMixin`) метод `timer$scaleStopValidation` служит сервером компенсации ускорения таймера. При получении действия `STOP_DESTROY_BLOCK` миксин вычисляет эффективные тики копки, умножая разницу времени на множитель чита: `scaledTicks = Math.max(1, Math.round((field_14000 - field_20326) * multiplier))`. Если полученный прогресс превышает `0.7F` (70%), метод досрочно вызывает завершение поломки `this.method_21717(pos, sequence, "destroyed")` и отменяет стандартную проверку через `ci.cancel()`, снижая требуемый объем работы на 30% сверх ускорения тиков. Поскольку класс `ServerPlayerInteractionManager` относится к логике сервера, этот миксин работает исключительно в одиночной игре, на интегрированном LAN-сервере или при установке мода на сам сервер. На удаленных выделенных серверах проверка выполняется независимо от клиента, поэтому клиентские читы FastBreak воздействуют на клиентский класс `ClientPlayerInteractionManager` (обнуляя задержку между блоками `blockBreakDelay` в 5 тиков). В легитимных модах библиотека Fabric API (`ServerPlayerGameModeMixin`) также подключается к `processBlockBreakingAction` для вызова событий `AttackBlockCallback` и `PlayerBlockBreakEvents.Before`, однако не изменяет прогресс разрушения и не вызывает `method_21717`.

Client-Side Ghost Block Spoofer

Ghost_Block_Air_Spoof Эксплойты (Exploits)
HIGH +8 очков

Принудительно подменяет блоки в клиентском мире на Blocks.AIR в обход сервера, позволяя игроку просматривать скрытые полости и проходить сквозь твёрдые стены и преграды.

Entity Collision Tampering / Air Walking

Ghost_Collision_Tampering Эксплойты (Exploits)
HIGH +8 очков

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

Client Game Speed / Timer Acceleration

Timer_Tick_Speed_Multiplier Эксплойты (Exploits)
HIGH +8 очков

В ванильном Minecraft физика персонажа, расчет перемещения, опрос клавиш управления и локальный прогресс разрушения блоков привязаны к базовой частоте 20 тиков в секунду (50 миллисекунд на один тик). Начиная с версии 1.20.3, расчет целевой длительности тика для главного цикла клиента вынесен в метод `MinecraftClient.getTargetMillisPerTick()`. Чит-модули Timer перехватывают данный метод и делят возвращаемое значение на пользовательский множитель (например, 2.0x или 3.0x). В исследованном модуле таймера (`com.example.timer.mixin.MinecraftClientMixin`) аннотация `@Inject` встраивается в точку `RETURN` метода `method_54785` с флагом `cancellable = true`. При включенном чите миксин считывает `TimerState.get().tickMultiplier()` и подменяет результат: `cir.setReturnValue(cir.getReturnValueF() / multiplier)`. В результате локальный клиент отрабатывает несколько тиков за промежуток реального времени одного тика, ускоряя перемещение и взаимодействие игрока с миром. При подключении к внешнему многопользовательскому серверу серверный мир продолжает работать с собственной частотой 20 TPS. Клиент с ускоренным таймером начинает отправлять пакеты перемещения (`PlayerMoveC2SPacket`) и действий с аномально высокой частотой по отношению к серверному времени. Серверные античиты фиксируют превышение лимита входящих пакетов за интервал времени и блокируют игрока за Timer или Speedhack. В легитимном контексте ванильный Minecraft предоставляет команду `/tick rate <значение>` (доступную с версии 1.20.3) для синхронного изменения скорости симуляции мира администраторами сервера. Инструменты создания видеороликов (например, ReplayMod) используют интерполяцию кадров и управление временем при рендеринге сцен, однако не форсируют отправку пакетов в соревновательном мультиплеере.

Хитбоксы (Hitbox) 7 правил

HitResult Crosshair Target Spoof

Hit_Result_Spoof Хитбоксы (Hitbox)
HIGH +9 очков

Создает искусственные объекты EntityHitResult и внедряет их в MinecraftClient.crosshairTarget. В результате игра считает, что игрок целится во врага, даже если прицел направлен в пустое небо.

Extreme Constant Hitbox Inflation

Hitbox_Hardcoded_Box Хитбоксы (Hitbox)
HIGH +9 очков

Создает экземпляры Box с гигантскими числовыми константами расширения (>10.0 блоков), раздувая хитбоксы на всю арену для нанесения ударов сквозь стены с огромного расстояния.

Entity Loop Hitbox Expander

Hitbox_Iterate_Entities Хитбоксы (Hitbox)
HIGH +9 очков

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

Hitbox Mixin Return Value Override

Hitbox_Mixin_Override Хитбоксы (Hitbox)
HIGH +9 очков

Перехватывает методы Entity.getBoundingBox() или Entity.getTargetingMargin() через Mixin (@ModifyReturnValue, @Inject), возвращая искусственно раздутый хитбокс, благодаря чему по игрокам можно попадать далеко за пределами их видимой модели.

Render-Hooked Hitbox Expander

Hitbox_Render_Mixin Хитбоксы (Hitbox)
HIGH +9 очков

Внедряется в WorldRenderer.renderEntity() через @Inject прямо перед отрисовкой кадра для перезаписи хитбоксов, удерживая их расширенными каждый кадр без рассинхронизации игровых тиков.

Инвентарь (Inventory) 7 правил

Auto Totem Replacer

AutoTotem Инвентарь (Inventory)
HIGH +8 очков

Отслеживает слот второй руки (offhand). Как только тотем активируется и сгорает, модуль мгновенно (за 0 тиков) находит запасной тотем в инвентаре и помещает его во вторую руку через пакеты clickSlot.

Auto Combat Disconnect (Auto Leave)

Auto_Leave Инвентарь (Inventory)
HIGH +8 очков

Отслеживает уровень здоровья, остаток тотемов или близость врагов. При падении HP ниже порога (например, 4 сердца) клиент моментально разрывает сетевое соединение, предотвращая смерть и потерю экипировки на анархии или хардкоре.

Middle Click Pearl

Auto_Pearl Инвентарь (Inventory)
HIGH +8 очков

В PvP ситуациях бросок эндер-перла требует ручного выбора слота на хотбаре, нажатия ПКМ и последующего возврата к мечу или щиту. Модули AutoPearl / MiddleClickPearl автоматизируют эту цепочку по нажатию одной клавиши: макрос сканирует хотбар, находит эндер-перл, переключает активный слот, вызывает `interactItem` для мгновенного броска и через 1 тик восстанавливает исходный предмет в руке.

Fast Place / Fast Use Delay Bypass

Fast_Place_Delay_Bypass Инвентарь (Inventory)
MEDIUM +5 очков

Обходит стандартную 4-тиковую задержку нажатия правой кнопки мыши путём сброса MinecraftClient.itemUseCooldown через Mixin Accessor, позволяя моментально строиться, мгновенно бросать зелья/пузырьки опыта и спамить кристаллами.

Вредоносное ПО (Malware) 12 правил

Command-Line Curl / PowerShell Dropper

Cmd_Curl_Dropper Вредоносное ПО (Malware)
CRITICAL +10 очков

Модификации Minecraft исполняются в пользовательском пространстве виртуальной машины Java. Отдельные сервисные утилиты или лаунчеры могут запускать внешние вспомогательные скрипты, однако модификациям игрового процесса обычно не требуется вызывать командные интерпретаторы ОС для скачивания файлов системными утилитами. Cmd_Curl_Dropper нацелен на шаблоны кода, в которых класс содержит ссылки на механизмы запуска процессов (`ProcessBuilder`, `Runtime`) совместно с именами командных оболочек и утилит скачивания. В сценариях вредоносного ПО этот прием может использоваться для передачи задач загрузки и выполнения нативным системным утилитам: вызываемая командная строка запускает `curl`, `wget`, `certutil` или `bitsadmin`, скачивая сторонний исполняемый файл в каталог пользователя и запуская его через `ProcessBuilder.start()` или `Runtime.getRuntime().exec()` автономно от клиента игры. Успешность запуска зависит от настроек безопасности системы. Если политики исполнения скриптов, антивирусные модули или контроль учетных записей (UAC) блокируют порождение дочерних процессов процессом `javaw.exe`, запуск завершится ошибкой.

Raw IP Address Communication

Direct_IP_URL Вредоносное ПО (Malware)
HIGH +7 очков

Большинство внешних сервисов и платформ модов обращаются к серверам через доменные имена с помощью службы DNS. Доменные имена обеспечивают прозрачность владельца, проверяемые сертификаты SSL/TLS и возможность оценки репутации домена. Direct_IP_URL выявляет модификации, содержащие публичные числовые IP-адреса (например, `http://203.0.113[.]42:8080/`) непосредственно в коде сетевых обращений. Локальное тестирование или частные серверы могут использовать прямое указание адреса, однако в публичных модах использование жестко зашитых публичных IP встречается редко. В сценариях вредоносного ПО прямой IP-адрес может использоваться для сетевого взаимодействия через стандартные API (`HttpURLConnection`, сокеты) с серверами управления (C2) без формирования DNS-запросов, что затрудняет обнаружение соединений средствами мониторинга DNS. Наличие прямого IP-адреса само по себе не доказывает вредоносность кода, однако требует проверки назначения сетевого вызова, формата передаваемых данных и принадлежности удаленного сервера.

Discord Webhook Exfiltration

Discord_Webhook Вредоносное ПО (Malware)
CRITICAL +10 очков

Входящие вебхуки Discord позволяют внешним сервисам отправлять сообщения и вложения в текстовые каналы через HTTP POST запросы в формате JSON без необходимости регистрации отдельного бота. Discord_Webhook выявляет наличие адресов webhook в коде модификаций. Во вредоносных сценариях вебхуки Discord могут использоваться как канал несанкционированной выгрузки конфиденциальных файлов и учетных данных (сессионных токенов из профилей лаунчеров, файлов cookie или сохраненных паролей) через стандартные HTTP-клиенты вроде `HttpURLConnection`. Поскольку трафик к доменам Discord обычно разрешен сетевыми экранами, выгрузка данных через webhook редко блокируется межсетевыми фильтрами. Хотя некоторые инструменты администрирования серверов или сборщики отчетов об ошибках могут использовать вебхуки для уведомлений, встраивание адреса входящего webhook в клиентский мод подвергает токен риску извлечения любым лицом, проанализировавшим файл.

Remote Executable Dropper

Dropper_Download_Exec Вредоносное ПО (Malware)
CRITICAL +10 очков

Стандартные загрузчики подключают модификации, добавляя JAR-архивы в classpath. Код мода функционирует в рамках виртуальной машины JVM, взаимодействуя с клиентом через события, миксины и интерфейсы движка. Dropper_Download_Exec выявляет цепочки инструкций, когда один и тот же метод скачивает внешний бинарный файл по сети, сохраняет его на локальный диск и сразу же запускает. В исследованном образце из `com.magma4496.Creatormagma` модификация выполняет метод `fetchAndExec()` в фоновом потоке. Метод отправляет сетевой запрос с помощью `HttpClient.send()`, записывая тело ответа напрямую в файл во временной директории через `BodyHandlers.ofFile(dest)`. При получении HTTP-кода 200 метод вызывает `dest.toFile().setExecutable(true)` и запускает полученный файл через `powershell` с аргументами `-NoProfile`, `-WindowStyle Hidden` и командой `Start-Process ... -Verb RunAs`, запрашивая повышение привилегий в системе (UAC). Примечательно, что проверка операционной системы в теле метода отсутствует. Из-за безусловного вызова `powershell` и файла `.exe` без проверки системного свойства `os.name` запуск срабатывает исключительно в среде Windows. На системах под управлением Linux или macOS, где интерпретатор PowerShell отсутствует или не может запустить исполняемый файл формата PE/Windows, запуск завершается ошибкой, которая подавляется пустым блоком `catch`.

Embedded Hardcoded URL

Embedded_URL Вредоносное ПО (Malware)
LOW +1 очков

Модификации регулярно обращаются к внешним серверам для штатных задач: проверки наличия обновлений, перехода к документации или баг-трекеру, подгрузки скинов или отображения ссылок на сообщества в главном меню. Embedded_URL выполняет инвентаризацию всех строковых URL-адресов в байткоде мода. В исследованном образце Destra Client (`ru.destra.gui.MainMenuScreen`) встроенные строковые константы (`SOCIAL_URL_*`) используются методом инициализации интерфейса `ensureSocialButtons()` для создания кнопок быстрого перехода. Примечательно, что в оригинальном коде автора иконка `SOCIAL_ICON_TELEGRAM` передается вместе со ссылкой `SOCIAL_URL_DISCORD`, а иконка `SOCIAL_ICON_DISCORD` — вместе со ссылкой `SOCIAL_URL_TELEGRAM`. Наличие встроенных ссылок само по себе не свидетельствует о вредоносности: большинство легитимных модов содержат ссылки на исходный код и страницы авторов. Тем не менее учет встроенных адресов обеспечивает прозрачность внешних сетевых связей мода, позволяя аудиторам выявлять каналы сбора телеметрии, рекламные редиректы и адреса сторонних серверов.

Direct Binary Download URL

Executable_Download_URL Вредоносное ПО (Malware)
CRITICAL +10 очков

Модификации для Minecraft поставляются в виде архивов Java (`.jar`) и исполняются под управлением виртуальной машины. Когда моду требуется загрузить дополнительные ресурсы, звуки или зависимости, они передаются в кроссплатформенных форматах (`.jar`, `.json`, `.ogg`, `.png`). Executable_Download_URL выявляет наличие прямых ссылок на нативные исполняемые файлы (`.exe`, `.bat`, `.ps1`). В подтвержденном вредоносном образце (`com.hittools.HitToolsClient` в `libs.jar`) разработчик встроил прямую ссылку на репозиторий GitHub для загрузки `.exe` файла (`autostartadd.exe`). При вызове метод скачивает исполняемый файл во временный каталог системы и запускает его через `Runtime.getRuntime().exec()` для закрепления мода в автозагрузке Windows. Влияние ограничено целевой платформой: код образца явно проверяет, содержит ли свойство `os.name` строку `windows`. На системах под управлением Linux или macOS метод выводит сообщение об ошибке и прерывает работу без скачивания бинарного файла.

Mod Menu Configuration Stealth Concealment

ModMenu_Config_Hiding Вредоносное ПО (Malware)
HIGH +9 очков

Mod Menu — стандартный графический интерфейс просмотра модификаций для Fabric и Quilt, считывающий списки загруженных дополнений и пользовательские настройки для отображения меню в игре. ModMenu_Config_Hiding выявляет модификации, которые скрытно перезаписывают файл `<config>/modmenu.json` на диске для удаления своего названия из списка. В исследованном образце (`com.example.timer.TimerClientMod`) код мода выполняется в точке входа `onPreLaunch`. До загрузки графического интерфейса метод `hideFromModMenu()` находит `modmenu.json`, парсит его через `JsonParser.parseReader()`, обходит массивы `"hidden_mods"` и `"hiddenMods"` и добавляет строку `"timer"`. После этого метод создает необходимые директории и сохраняет обновленный JSON на диск через `Files.newBufferedWriter()` и `GsonBuilder().toJson(root, writer)`. Когда Mod Menu инициализирует интерфейс, он считывает обновленный файл и не показывает модификацию в списке модов. Чит продолжает исполняться с полными правами, но исключается из отображаемого в интерфейсе списка установленных дополнений. Этот метод дополняет правило `Modlist_Self_Hide` (score 9): если `Modlist_Self_Hide` фиксирует удаление контейнера мода из списка загрузчика через рефлексию (`FabricLoaderImpl.getMods().removeIf(...)`), то ModMenu_Config_Hiding фиксирует модификацию конфигурационного файла Mod Menu на диске. В легитимном окружении файл `modmenu.json` редактируется самим Mod Menu (`com.terraformersmc.modmenu`) по запросу пользователя через меню настроек либо поставляется в готовых сборках. Программная правка чужого конфига сторонним модом на этапе `preLaunch` свидетельствует о намеренном сокрытии чита.

Mod Menu Stealth Concealment

Modlist_Self_Hide Вредоносное ПО (Malware)
HIGH +9 очков

Загрузчики модов хранят списки активных модификаций во внутренних структурах ядра и предоставляют публичные интерфейсы (например, `FabricLoader.getInstance().getAllMods()`), через которые меню и утилиты опрашивают загруженные дополнения. Modlist_Self_Hide нацелен на алгоритмы, получающие доступ к внутренним структурам загрузчика через рефлексию и удаляющие контейнер определенного мода из общего списка. После удаления контейнера модификация продолжает исполняться, но перестает отображаться в списках модов, меню настроек и при опросе через API загрузчика. Данный метод модификации списка загрузчика через рефлексию дополняет файловое сокрытие (`ModMenu_Config_Hiding`, оценка 9), при котором чит перезаписывает `modmenu.json` на диске для удаления из графического меню. Этот прием используется для сокрытия читерских модулей от модераторов при ручных проверках установленных модов. Вместе с тем принудительное вмешательство в закрытые структуры загрузчика может нарушить работу других модов, зависящих от проверки установленных библиотек, или приводить к сбоям при завершении работы клиента.

Native JNI Library Extractor

Native_Library_Dropper Вредоносное ПО (Malware)
MEDIUM +5 очков

Интерфейс Java Native Interface (JNI) позволяет программам на Java вызывать скомпилированный код C, C++ или Rust. Базовые библиотеки Minecraft (такие как LWJGL для графики и OpenAL для звука) используют нативные модули. Кроме того, некоторые легитимные моды оптимизации (управление памятью, уменьшение задержки ввода) поставляют нативные библиотеки для конкретных платформ. Native_Library_Dropper выявляет классы, которые извлекают бинарные файлы во временный каталог и загружают их через `System.load()`. Хотя такой механизм используется и в легитимном системном коде, нативные библиотеки могут использоваться для выполнения машинного кода непосредственно в адресном пространстве процесса. Машинный код исполняется вне виртуальной машины JVM, что позволяет напрямую взаимодействовать с памятью и системными вызовами операционной системы. Поскольку распаковка нативных библиотек встречается как в оптимизационных дополнениях, так и в нежелательном ПО, правило классифицировано со средней степенью критичности (оценка 5) и требует отдельного анализа содержимого самой библиотеки.

Pastebin / Raw Text C2 Server

Pastebin_C2 Вредоносное ПО (Malware)
HIGH +7 очков

Приложения могут использовать удаленные серверы конфигурации для показа объявлений, получения экстренных сообщений или обновления списка серверов без выпуска новой версии мода. Pastebin_C2 выявляет модификации, содержащие прямые ссылки на эндпоинты открытого текста (`pastebin.com/raw/`). Во вредоносном коде анонимные сервисы публикации текста могут использоваться как динамические конфигураторы: создатели мода размещают в пасте актуальные адреса вебхуков Discord, флаги деактивации или ссылки на дополнительные файлы. Мод обращается к пасте при запуске клиента через сетевой поток (например, `URL.openStream()`) и применяет полученные строки как параметры работы. Само по себе чтение текстового документа не исполняет код в системе, однако обращение к неаутентифицированным публичным пастам дает автору пасты возможность в любой момент изменить сетевое поведение мода без ведома пользователя.

Telegram Bot API Exfiltration (C2)

Telegram_C2_Bot Вредоносное ПО (Malware)
CRITICAL +9 очков

Вредоносное ПО (стиллеры и трояны) маскируется под моды Minecraft для хищения сессионных токенов учетных записей, сохраненных паролей браузера и токенов Discord. Для скрытой передачи украденных данных злоумышленники часто используют Telegram Bot API, отправляя HTTP POST запросы на эндпоинт `api.telegram.org/bot<token>/sendMessage` или `sendDocument` в свой приватный чат.

Telegram Bot / Channel C2 Link

Telegram_Link Вредоносное ПО (Malware)
LOW +1 очков

Многие разработчики и сообщества ведут информационные каналы на платформах Discord, Telegram или Matrix для публикации списков изменений, технической поддержки и анонсов обновлений. Telegram_Link находит файлы классов, содержащие строковые константы со ссылками `t.me/`. В исследованном образце из `ru.pulse.Pulse` модификация выполняет метод `runtimeBrandingTick()`, который меняет заголовок окна GLFW на рекламный текст, проверяет системное свойство и принудительно открывает в браузере игрока два Telegram-канала через `Desktop.getDesktop().browse()`. Если интерфейс `Desktop` не поддерживается, код вызывает системную утилиту Windows (`rundll32 url.dll,FileProtocolHandler`) в качестве резервного пути. Такое поведение не является скрытым каналом управления (C2) или кражей данных, однако навязчивое открытие сторонних ссылок при запуске нарушает пользовательский опыт и навязывает рекламный переход без явного действия пользователя.

Обфускация (Obfuscation) 10 правил

Character-Array Built Strings

Char_Built_Strings Обфускация (Obfuscation)
LOW +1 очков

Формирует чувствительные строки (URL-адреса, токены, пути к файлам) посимвольной конкатенацией символов или байтов во время выполнения в обход сканеров строк.

Encrypted / Packed Bytecode Crypter

Packed_Class_Crypter Обфускация (Obfuscation)
CRITICAL +8 очков

Основной байткод мода зашифрован криптографическими алгоритмами (AES, DES, XOR) и расшифровывается в память во время выполнения через кастомный загрузчик классов (defineClass).

Дистанция (Reach) 3 правил

Entity Attribute Reach Modification

Reach_Attribute_Modifier Дистанция (Reach)
HIGH +8 очков

До версии Minecraft 1.20.5 дистанция атаки и взаимодействия игрока задавалась жестко зашитыми константами в коде клиента и сервера (3.0 блока для выживания, 4.5 для креатива). Начиная с версии 1.20.5 Mojang перенесла эти параметры в систему атрибутов сущностей: `player.entity_interaction_range` (`PLAYER_ENTITY_INTERACTION_RANGE`) и `player.block_interaction_range` (`PLAYER_BLOCK_INTERACTION_RANGE`). Reach_Attribute_Modifier фиксирует создание модификаторов атрибутов `EntityAttributeModifier`, нацеленных на реестр дистанции взаимодействия. В сценарии чит-модификации код создает экземпляр модификатора с положительным смещением и регистрирует его в контейнере атрибутов локального игрока. Это расширяет радиус атаки и взаимодействия на уровне стандартных игровых механик без необходимости прямого патчинга методов рейкастинга или байткода `ClientPlayerInteractionManager`. На серверах с ванильной валидацией или серверными античитами клиентские модификаторы атрибутов, не подтвержденные сервером, приводят к отклонению пакетов взаимодействия и отмене ударов.

Reach Distance Mixin Override

Reach_Mixin_Override Дистанция (Reach)
HIGH +9 очков

В Minecraft класс `ClientPlayerInteractionManager` управляет взаимодействием персонажа с миром: установкой и разрушением блоков, а также кликами по сущностям. Метод `getReachDistance()` возвращает допустимую дистанцию взаимодействия в блоках, а `hasExtendedReach()` определяет, активен ли режим расширенной дальности (например, в творческом режиме). Reach_Mixin_Override выявляет модификации, которые внедряются в `ClientPlayerInteractionManager` через библиотеку Mixin для подмены логики этих методов. В чит-клиенте Phosphor (`net.caffeinemc.phosphor.mixin.ClientPlayerInteractionManagerMixin`) аннотация `@Inject` перехватывает `getReachDistance()F` в точке `HEAD` с параметром `cancellable = true`. Если чит-модуль включен, метод отменяет ванильное выполнение и возвращает значение ползунка `reachModule.blockReach.getFValue()`. Одновременно метод `hasExtendedReach()Z` переопределяется возвратом `false`, предотвращая сопутствующие расхождения в клиенте. Несмотря на то, что клиент получает возможность направлять прицел на удаленные объекты, серверные античиты и проверка дистанции на сервере отбрасывают входящие пакеты при превышении валидного радиуса.

Extended Reach Raycast

Reach_Raycast_Extended Дистанция (Reach)
HIGH +8 очков

В ванильном клиенте Minecraft прицеливание в ближнем бою рассчитывается в методе `GameRenderer.updateTargetedEntity()`. В режиме выживания максимальная дистанция луча для захвата цели `EntityHitResult` ограничена 3.0 блоками. Сущности, находящиеся дальше 3.0 блоков, не могут быть атакованы в ближнем бою. Reach_Raycast_Extended обнаруживает боевые модули, которые самостоятельно вычисляют траекторию атаки через `ProjectileUtil.raycast()` с увеличенными коэффициентами дальности. В моде SimpleAutoAttack (`org.simpleautoattack.SimpleAutoAttack.AutoAttack`) метод `AutoMeleeTick()` рассчитывает вектор направления взгляда: `float reach = (float)(mc.field_1724.method_7337() ? 4.5 : ...)`, где дальность креативного режима `4.5` блока сохраняется в переменную `reach`. Затем вызывается `ProjectileUtil.raycast(..., reach * reach)`. Если в расширенном радиусе обнаружена живая сущность, код вызывает атаку `attackEntity(player, target)` (`method_2918`). Это позволяет моду автоматически наносить удары по целям на увеличенном расстоянии. Если дистанция превышает порог валидации на сервере, атака будет аннулирована античитом.

Рендер / ESP 3 правил

Detached Free Camera (Freecam / FreeLook)

Freecam_Camera_Detached Рендер / ESP
HIGH +7 очков

В Minecraft точка обзора игрока жестко привязана к сущности персонажа. На каждом кадре метод `Camera.update()` обновляет положение и углы поворота камеры на основе координат игрока, высоты глаз и направления взгляда, а метод `clipToSpace()` предотвращает прохождение камеры сквозь блоки в режиме от третьего лица. Freecam_Camera_Detached выявляет модификации, внедряющиеся в `Camera` (`class_4184`) для отвязки камеры от тела персонажа. В исследованном чит-клиенте (`com.larpclient.mixin.CameraFreecamMixin`) аннотация `@Inject` встраивается в конец метода `Camera.update()` (`method_19321`). При активном модуле `FreecamModule` миксин перезаписывает ориентацию камеры через `this.method_19325(yaw, pitch)` и координаты через `this.method_19322(pos)`. Это позволяет игроку свободно перемещать бесплотную камеру сквозь непрозрачные стены и блоки для разведки баз, тайников и подземных пещер, в то время как физическое тело персонажа остается неподвижным на сервере.

Entity Glow / Wallhack ESP Mixin

Glow_Mixin_Override Рендер / ESP
HIGH +8 очков

В Minecraft эффект свечения (Glowing) подсвечивает контур сущности цветной обводкой, которая видна сквозь непрозрачные блоки и препятствия. В ванильной игре этот эффект выдается сервером строго по игровым правилам — например, при попадании спектральной стрелы или наложении соответствующего зелья. Glow_Mixin_Override обнаруживает модификации, перехватывающие метод `Entity.isGlowing()` (`method_5851`) через Mixin. В модификации FriendHighlight (`net.maksaidev.friendhighlight.mixin.EntityGlowMixin`) аннотация `@Inject` внедряется в начало метода `isGlowing` с параметром `cancellable = true`. Если сущность является игроком (`class_742`), код проверяет его наличие в списке друзей `FriendManager.isFriend(name)`. При совпадении метод вызывает `cir.setReturnValue(true)`. Принудительный возврат `true` заставляет клиент отрисовывать контур сквозь стены. Несмотря на то, что в данном образце функционал ориентирован на утилитарную подсветку союзников, абсолютно аналогичный байткод-шаблон используется в читах класса Wallhack / ESP для обнаружения любых противников на PvP-серверах.

Trap / Obsidian Box ESP Highlighter

Trap_ESP Рендер / ESP
HIGH +8 очков

В графическом конвейере Minecraft используется тест глубины OpenGL (Z-буфер), скрывающий объекты, расположенные позади непрозрачных блоков. При включенном тесте глубины пиксели удаленных объектов отсекаются, если перед ними уже отрисованы более близкие поверхности. Trap_ESP выявляет модификации, которые подписываются на события рендеринга Fabric (`WorldRenderEvents.AFTER_ENTITIES`) и создают кастомные слои отрисовки с отключенным тестом глубины (`depthTest(false)` / `method_23617(false)`). В моде Antitrap (`ru.antitrap.TrapRenderer`) класс регистрирует слушатель в `WorldRenderEvents.AFTER_ENTITIES`. Код сканирует блоки в радиусе 35 блоков на наличие элементов ловушек и стоек для брони. Координаты найденных объектов отрисовываются с использованием слоя `HIGHLIGHT_LAYER`, в котором тест глубины отключен вызовом `.method_23617(false)`. Отключение теста глубины позволяет цветным рамкам и коробкам отображаться поверх стен и грунта, предоставляя нечестное преимущество (Wallhack/ESP) за счет обнаружения скрытых ловушек и засад сквозь любые преграды.