XenProxy
A Free Fire-optimized MITM proxy, forked from mitmproxy. XenProxy combines a full-featured HTTPS interception proxy with a dedicated Free Fire bypass pipeline.
Features
Core Proxy (forked from mitmproxy)
- Interactive console UI, headless dump mode, and web UI
- HTTP/1, HTTP/2, HTTP/3, and WebSocket interception
- TLS interception with dynamic certificate generation
- TCP, UDP, and DNS proxy modes
- Scriptable via Python addons
- Full mitmproxy addon ecosystem compatibility
Free Fire Bypass Addon (addons/firebypass.py)
- Login interception — hooks into Free Fire API domains (
loginbp.ggblueshark.com,prod-api.reward.ff.garena.com,100067.connect.garena.com) - Binary protobuf response patching — zeroes emulator/pool/hacker fields (F6, F9, F12, F13, F14, F22, F23, F25, F58, F104–113, F200, F260/261, F325) on MajorLogin/GetLoginData responses
- Telemetry string scrubber — same-length replacements for CPU/GPU/emulator fingerprints (
x86_64→arm64v,Intel(R)→Qualcomm,BlueStacks→XiaomiMI, etc.) applied to HTTP bodies AND raw TCP streams - TCP stream interception —
tcp_messagehook blocks raw streams by UID and scrubs telemetry from ANO/SLS/TSS upload payloads - UID blocking —
ff.block_uid,ff.unblock_uid,ff.list_blockedruntime commands - Fingerprint masking — strips proxy-detection headers (
Via,X-Forwarded-For, etc.), rewrites suspicious User-Agents, removes PC-only headers (X-Device-Info,X-Platform-Info,X-Client-Type, ...) - Stealth timing jitter — 2–20ms Gaussian latency on login requests to defeat timing fingerprinting
- JWT forwarding — integrates with the access_jwt token mutation service
- Selective domain blocking — silently returns
200 {}for crash reporters/analytics while leaving anti-cheat telemetry (ANO/TSS/SLS/SGSSR) unblocked
Device Identity Generator (addons/device_gen.py)
- Procedurally generates a unique, coherent Android device fingerprint (brand, model, build, User-Agent, locale) per connecting client IP
- 12 OEM profile generators: Samsung, Xiaomi, OnePlus, Pixel, Vivo, Oppo, Realme, Motorola, Infinix, Tecno, Itel, Nokia
- Consistency per IP with a ~10^14 combination space to defeat anti-cheat enumeration
- Used by the bypass addon for User-Agent and identity spoofing
Backend Pipeline
- Raw TCP forwarder on
:9999— bidirectional byte-level proxy with game-layer AES decrypt - JWT mutation service on
:1080— template-based protobuf payload rewriting - Admin HTTP API on
:5000— UID management, stats, health checks - UID sync loop — pulls blocklists from remote API every 120s
Architecture
Emulator → Raw Forwarder (:9999) → XenProxy Proxy (:8080) → Game Servers
↕
access_jwt Service (:1080)
(JWT mutation)
Quick Start
# Install
pip install xenproxy
# Start the proxy
xenproxy
# Start the web UI
xenproxy web
# Start headless dump mode
xenproxy dump
Free Fire Pipeline
# Terminal 1: Start the backend services
cd new/python
pip install -r requirements.txt
python main.py
# Terminal 2: Start XenProxy with the bypass addon
xenproxy -s xenproxy/addons/firebypass.py --set ff_bypass=true --set ff_mask_fingerprint=true
Configure your emulator to use the proxy at the host machine's LAN IP on port 8080, and the raw forwarder on port 9999.
Configuration
XenProxy reads ~/.xenproxy/config.yaml on startup. Key options:
| Option | Default | Description |
|---|---|---|
listen_port |
8080 | Proxy listen port |
mode |
regular | Proxy mode (regular, transparent, socks5, reverse, upstream) |
ssl_insecure |
false | Disable upstream TLS verification |
ff_bypass |
true | Enable Free Fire bypass addon |
ff_blocked_uids |
[] | UIDs to block |
ff_access_jwt_url |
http://127.0.0.1:1080 | JWT mutation service URL |
ff_mask_fingerprint |
true | Strip proxy fingerprints |
Building
PyInstaller (standalone binary)
pyinstaller release/specs/standalone.spec --clean
# Output: release/dist/xenproxy.exe
MSIX Installer (Windows Store)
pyinstaller release/specs/onedir.spec --clean
python release/build.py msix-installer
InstallBuilder Installer (Windows)
pyinstaller release/specs/onedir.spec --clean
python release/build.py installbuilder-installer
Docker
docker build -t xenproxy release/docker/
docker run -p 8080:8080 -p 8081:8081 xenproxy
Development
# Install with uv
uv sync
# Run tests
uv run pytest
# Run linter
uv run ruff check xenproxy/
# Type check
uv run mypy xenproxy/
Project Structure
xenproxy/ # Main proxy package
├── addons/ # Addon modules
│ ├── firebypass.py # Free Fire bypass addon
│ ├── device_gen.py # Procedural Android device identity generator
│ └── onboardingapp/ # Certificate installation portal
├── proxy/ # Proxy core
├── tools/ # CLI entry points
│ └── main.py # xenproxy_cli dispatcher
├── net/ # Network protocols
├── io/ # I/O and serialization
├── contentviews/ # Content decoders
└── utils/ # Utilities
web/ # React/TypeScript web UI frontend
release/ # Build & installer configs
new/python/ # Free Fire backend pipeline
License
MIT — see LICENSE.
Credits
XenProxy is a fork of mitmproxy. The original project is maintained by the mitmproxy contributors and licensed under the MIT license.
Metadata
Release files for xenproxy 1.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xenproxy-1.0.7.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xenproxy-1.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.5 MB
Release files / xenproxy-1.0.7.tar.gz
| Download URL | xenproxy-1.0.7.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2540a48e8d9ab1c3cec5d3895465d91c2427df5854f62d892452072ba0955f86
|
|
BLAKE2b-256 checksum How to use checksums |
f8c02c769ff3b3a41f24e3a1fd1d7d482c0bcbf8de737730719cc59f8b1cecd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / xenproxy-1.0.7-py3-none-any.whl
| Download URL | xenproxy-1.0.7-py3-none-any.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
69e8e2694785152bd83ac469a37af2d1c69e213569779405145c0cf17f7f7557
|
|
BLAKE2b-256 checksum How to use checksums |
d66aca46167ed7928517e053a633d80e487189d54514fb21537ef2aff869d7e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|