Skip to content

aurickk/OpSec

Repository files navigation

duper trooper mogging my whole family

A client-side Minecraft mod that provides protection against client fingerprinting, tracking exploits, and other privacy focused features.

Warning

This is a passion project mostly built with AI. Everything is tested but don't rely on this for actual security. If you want something proven, use ExploitPreventer (See EP Compatibility and Meteor Client notes). OpSec just offers more features and interactive customization on top of the basics.

Important

OpSec and ExploitPrevent are seperate and independent projects. Please do not contact the ExploitPreventer developer regarding OpSec issues and vice versa. Feel free to open an issue here or express your concern in our official support Discord server.

What it does

If you're interested in servers or plugins that are using tracking related exploits then look in the Hall of Shame.

Requirements

  • Minecraft 1.21.1 – 26.1.2
  • Fabric Loader 0.16.0+ (0.18.5+ for MC 26.1.x)
  • Fabric API (matching your Minecraft version)

Installation

  1. Install Fabric Loader for your Minecraft version
  2. Download the latest Fabric API for your Minecraft version
  3. Download the latest opsec-[minecraft_version]+[version].jar from the Releases page
  4. Place both mods in your .minecraft/mods folder
  5. Launch Minecraft

Configurations

The settings menu is accessible via the OpSec button in the multiplayer server selection menu header or via Mod Menu.

image

If settings are changed while connected to a server it is recommended to reconnect to the server to ensure changes are applied.

Identity Tab

Setting Description
Spoof Brand Enable/disable brand spoofing
Brand Type Select which brand to appear as (Vanilla/Fabric)
Spoof Channels Enable/disable channel spoofing

Protection Tab

Setting Description
Isolate Pack Cache Enable/disable cache isolation
Block Local Pack URLs Enable/disable local URL blocking
Bypass Server Pack Requirement Configure server pack bypass behavior:
MANUAL (default): Default vanilla behavior on push. You can still toggle any server pack.
ASK: Server resource pack not applied but with consent screen to ask if the pack(s) should be applied
ALWAYS ON: Server resource pack not applied by default. You can still toggle any server pack
Clear Cache Delete all cached server resource packs
Key Resolution Spoofing Enable/disable key resolution protection
Fake Default Keybinds Return default vanilla keybind values instead of actual bindings
Meteor Fix Disable Meteor Client's broken key resolution protection (only shown when Meteor is installed)
Signing Mode Configure chat signing behavior:
OFF: Strip signatures (maximum privacy)
ON: Default Minecraft behavior
AUTO: Only sign when required (recommended)
Disable Telemetry Enable/disable telemetry blocking

Whitelist Tab

Setting Description
Whitelist Mode Select whitelist behavior:
OFF: All mod content blocked
AUTO: Mods with network channels are automatically whitelisted (default)
CUSTOM: Manually select which mods to whitelist
Installed Mods Toggle individual mods ON/OFF to exempt them from protection (CUSTOM mode only)

Miscellaneous Tab

Setting Description
Show Alerts Display chat messages when tracking is detected
Show Toasts Display popup notifications for important events
Log Detections Log all detection events to game log for transparency

Accounts Tab

Setting Description
Saved Accounts List of added accounts with login/logout and remove buttons
Refresh All Revalidate all account tokens (invalid tokens marked red)
Add Session Token Add a new account using a session (access) token
Import Import accounts from a JSON file
Export Export accounts to a JSON file

Debug Commands

Use /opsec in-game to access debug information:

Command Description
/opsec Show available commands
/opsec info Show overview of all tracked mods
/opsec info <mod> Show details for a specific mod (translation keys, key-bind key, channels)
/opsec channels Show all tracked network channels with whitelist status

Understanding Alerts

  • Key Resolution Exploit Detected: Server is probing your keybind
  • Resource Pack Fingerprinting Detected: Suspicious resource pack URL detected
  • Local URL Scan Detected: Resource pack redirect targeted a local/private address

Feature Details

Brand Spoofing

Servers can query your client brand to detect whether you're running a modded client. OpSec intercepts the brand packet and replaces it with your chosen brand:

  • Vanilla - Appear as an unmodified Minecraft client
  • Fabric - Appear as a standard Fabric client (default)

The brand setting also determines how Channel Spoofing and Key Resolution Protection behave for each mode.

Important

Server plugins like AntiSpoof can detect the discrepancy between the client brand name and mod channels and flag clients for spoofing if Channel Spoofing wasn't enabled.


Isolate Pack Cache

Based on LiquidBounce.

Server-required resource packs could be used to fingerprint client instance across accounts.

https://alaggydev.github.io/posts/cytooxien/

Instead of storing all resource packs in a shared cache (~/.minecraft/downloads/), OpSec creates separate cache directories for each account UUID.


Block Local URLs

Taken from ExploitPreventer by NikOverFlow

Malicious servers can send resource pack URLs that redirect to your local network to probe for devices and services.

https://alaggydev.github.io/posts/cytooxien/

OpSec checks if a redirect or normal request targets a local address, then blocks the connection.


Bypass Server Pack Requirement

Servers can push required resource packs the client is forced to apply. Declining them or toggling required server resource pack(s) is impossible on vanilla client. And fake accepting them is detectable with the key resolution exploit by probing the client's resource pack key response.

Minecraft still accepts and downloads these packs as normal but OpSec lets you toggle the pack textures at the client level. The language file of the server resource pack is preserved because servers can probe translation keys (e.g. via {"translate": "some.pack.key"}) to detect whether the pack is actually applied, and a vanilla client with the pack loaded would resolve those keys to the pack-defined value.

With Opsec installed, server resource pack(s) appears as a normal user-toggleable entry in the resource pack menu so you can flip between stripped and fully-loaded.

Modes:

  • MANUAL (default): Required packs apply fully like vanilla on push. Optional packs follow vanilla toggle semantics. The user can still unequip any server pack from the pack menu to strip it while keeping lang loaded.
  • ASK: Required packs are stripped on push and a consent overlay prompts [Continue] / [Load Pack For Real].
  • ALWAYS ON: All server packs are stripped on push. No overlay. You can still toggle them back.

Key Resolution Protection

Servers can send translatable text containing keys like key.attack or key.hide_icons in any server packet to probe which keys you have bound or mod UI elements your client can resolve. This can reveal the client's installed mods.

https://wurst.wiki/sign_translation_vulnerability

OpSec tracks when translation keys are being resolved during server packet processing and blocks Minecraft from resolving them based on your selected brand mode:

Mode-Specific Behavior

  • Vanilla mode: Blocks all mod keys, returns default keybind values for vanilla keys
  • Fabric mode: Allows Fabric API keys and whitelisted mod keys, blocks everything else

When Fake Default Keybinds is disabled, vanilla keybinds resolve to their actual values.

Examples

Spoofing mod keybinds (Returns raw keys/fallback value instead of keybind values):

[key.meteor-client.open-commands] '.'→'key.meteor-client.open-commands'
[key.meteor-client.open-gui] 'Right Shift'→'key.meteor-client.open-gui'

Spoofing vanilla keybinds with Fake Default Keybinds enabled (Returns default keybinds):

[key.hotbar.6] 'Q'→'6'
[key.hotbar.7] 'E'→'7'
[key.hotbar.8] 'R'→'8'

Meteor Fix

Meteor client has their own key protection implementation which can lead to a guaranteed detection with the key resolution exploit.

Sometimes the server uses a fallback value so that instead of expecting the raw key from a Vanilla client its expecting the fallback value instead.

Key doesn't exist → returns fallbackvalue

Meteor's key spoofing implementation:

1. When the server sends a sign with {"translate":"key.meteor-client.open-gui", "fallback":"⟦FALLBACK⟧"}:
2. Meteor intercepts during AbstractSignEditScreen constructor
3. Detects "meteor-client" in the key
4. REPLACES the TranslatableTextContent with PlainTextContent.Literal("key.meteor-client.open-gui") to prevent Minecraft from resolving it to key bind values

When the server uses a sign exploit with fallback value on Meteor Client:

'key.meteor-client.open-gui' 'Right Shift'→'key.meteor-client.open-gui'
image

What a Vanilla response would actaully be:

'key.meteor-client.open-gui' '⟦FALLBACK⟧'→'⟦FALLBACK⟧'

OpSec's bandaid fix for Meteor is to blacklist the AbstractSignEditScreenMixin Mixin to disable Meteor's broken key resolution protection. Allowing OpSec's protection to take over, which already handle fallbacks correctly to match the Vanilla response.

image

ExploitPreventer Compatibility

For users that prefers ExploitPreventer's core protection implementation but still need OpSec's additional features, both can be installed alongside each other. Overlapping features are automatically disabled to let EP handle them, note that you would lose OpSec features such as channels spoofing. The following OpSec features are deferred to EP:

These settings are grayed out in the config screen but your saved preferences are preserved. If you remove EP later, they restore automatically.

Features that don't overlap remain fully functional: alerts, chat signing, account manager, telemetry blocking, and Meteor Fix.

Pre-patched Meteor Client

If you use Meteor Client with EP but without OpSec, you need a Meteor build that fixes the faulty sign translation protection such as NikOverflow's patched build which removes the broken sign protection.

If you use continued to use OpSec, this is handled automatically by Meteor Fix regardless of Meteor version.


Channel Spoofing

Servers can query your registered network channels to detect which mods you have installed.

When enabled, OpSec spoofs mod channels that are registered with the server based on your selected brand:

  • Vanilla mode: Blocks ALL mod channels (pure vanilla client)
  • Fabric mode: Only allows Fabric API channels and whitelisted mods, blocks other mods

Warning

May break server-dependent mod(s) if not whitelisted. Use the Mod Whitelist to exempt specific mods like VoiceChat or disable channel spoofing.


Mod Whitelist

Some mods require server communication to function properly (e.g., VoiceChat, Xaero's Minimap waypoint sharing). The whitelist allows you to exempt specific mods from channel spoofing and key resolution protection.

whitelist settings menu

Modes:

  • OFF: All mod content is blocked
  • AUTO (default): Mods that register network channels are automatically whitelisted as they are the most likely to have server-side functionalities
  • CUSTOM: Manually select which mods to whitelist from the installed mod list

When the whitelist is active (AUTO or CUSTOM):

  • Brand is forced to Fabric since you are revealing Fabric mods
  • Whitelisted mods can register their channels and translation keys normally
  • Non-whitelisted mods remain hidden from the server

Note

Only mods that register network channels, translatable keys and keybind keys are shown in the whitelist.


Chat Signing Control

Based on No Chat Reports.

Cryptographic signatures by default are attached to every chat messages. Removing them makes it impossible to track and associate your chat messages with your Minecraft client, and, by extension, Microsoft account.

Modes:

  • OFF: Strip all chat signatures, but prevents you from chatting in servers that enforces secure chat.
  • Auto: Only sign messages when the server enforces secure chat.
  • ON: Default Minecraft behavior, signs every messages.

Account Manager

Based on Meteor Client.

Add Minecraft accounts with session tokens and switch between them without restarting the game.

  • Session Token Login - Add accounts using access tokens
  • Refresh Token - Fetch new session tokens for expired accounts
  • Offline Account - Add username-only accounts without authentication
  • Account Switching - Click an account to login, click again to logout to original account
  • Token Validation - Refresh to check if tokens are still valid (expired tokens marked red)
  • Import/Export - Backup and restore accounts via JSON files

Note

Session tokens expire after some time. Use the Refresh button to check validity.


Telemetry Blocking

From No Chat Reports.

Minecraft collects and sends telemetry data to Mojang, including:

  • Game events and player actions
  • Performance metrics
  • Client configuration
  • Usage statistics

OpSec blocks telemetry sending to Mojang when telemetry blocking is enabled. Does not effect gameplay.


Building from Source

Prerequisites

  • Java 25
  • Gradle (included via wrapper)

Building the Minecraft Mod

  1. Clone the repository

    git clone https://github.com/aurickk/OpSec.git
    cd OpSec
  2. Build all versions

    # Windows
    .\gradlew.bat build
    
    # Linux/Mac
    ./gradlew build
  3. Build a specific version

    # Build for a specific version
    ./gradlew :1.21.4:build
    ./gradlew :1.21.11:build
    ./gradlew :26.1:build

Output JARs are located in versions/<minecraft_version>/build/libs/:

Build Version Supports
1.21.1 1.21 – 1.21.1
1.21.4 1.21.2 – 1.21.5
1.21.6 1.21.6 – 1.21.8
1.21.9 1.21.9 – 1.21.10
1.21.11 1.21.11
26.1 26.1 – 26.1.2

References

Disclaimer

OpSec is a privacy tool designed to protect players from unwanted client fingerprinting and tracking. It is not intended or encouraged for use in bypassing server rules, evading bans, or gaining unfair advantages. Users are responsible for complying with the rules and terms of service of any server they connect to.

About

Minecraft mod for advanced client brand spoofing, tracking exploit protections, and other privacy focused features.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages