Skip to main content

A stealthy Chromium remote-control tool using DevTools Protocol with dynamic JS injection to evade bot detection.

Project description

Zealium

Zealium is a stealthy Chromium remote-control toolkit leveraging the Chrome DevTools Protocol with dynamic JavaScript injection to evade bot detection. It provides multi-layered anti-fingerprinting patches, human-like interaction simulation, and robust stealth capabilities for advanced browser automation.


Features

  • Stealth Browser Automation: Control Chromium-based browsers (Chrome, Edge) remotely with powerful stealth techniques to bypass modern bot detection systems and CAPTCHAs.

  • Dynamic JS Injection: Inject custom JavaScript patches at runtime to spoof browser fingerprints, including canvas, WebGL, audio, navigator properties, media devices, WebRTC, permissions, and more.

  • Human Behavior Simulation: Simulate natural mouse movements, clicks, scrolling, and typing with randomized, non-linear patterns, hesitations, and noise to mimic real user interactions.

  • Cross-Platform Support: Compatible with Windows, macOS, and Linux environments, detecting browser executables and managing user profiles seamlessly.

  • Customizable Stealth Levels: Choose from multiple preset stealth configurations (low, normal, strict), or supply your own patch methods for tailored stealth strategies.


Installation

Requires Python 3.11+ and a Chromium-based browser installed.

pip install zealium

Or install dependencies manually with Poetry:

poetry install

Usage Example

from zealium import Zealium

# Launch browser with stealth
zealium = Zealium(browser="chrome", stealth_level="normal")
zealium.launch()

# Use human behavior simulator to type text
zealium.human.type_text("Hello, Zealium!")

# Interact stealthily via DevTools Protocol...

# Clean up
zealium.close()

Stealth Toolkit

Zealium includes a collection of JavaScript patches injected into the browser context to evade detection, such as:

  • Spoofing navigator.webdriver and other common bot signals
  • Canvas fingerprint noise and spoofing
  • WebGL precision spoofing
  • Overriding Function.prototype.toString
  • Mocking navigator.plugins and navigator.mimeTypes
  • Faking chrome.runtime
  • Neutralizing WebRTC IP leaks
  • Audio context fingerprint mitigation
  • Mocking media devices and permissions queries
  • Spoofing screen properties and Intl DateTime formatting

Stealth levels control which patches are applied:

  • low: Basic evasion
  • normal: Moderate stealth
  • strict: Comprehensive patching

JS Injection Scripts for Stealth Patching

The injections/ folder contains multiple JavaScript scripts injected dynamically to spoof and patch browser APIs, avoiding detection by anti-bot and fingerprinting systems.

File Purpose
audio_oscillator_patch.js Patches AudioContext.createOscillator to add random jitter, avoiding audio fingerprinting.
canvas_noise.js Adds subtle noise to canvas pixel data to avoid canvas fingerprint consistency.
intl_datetime_patch.js Overrides Intl.DateTimeFormat.prototype.resolvedOptions to spoof locale and timezone data.
mock_audio_fingerprint.js Adds small variations in audio frequency data to mask audio fingerprint patterns.
mock_chrome_runtime.js Creates a fake chrome.runtime object to prevent detection errors in Chrome environment checks.
mock_media_devices.js Mocks navigator.mediaDevices.enumerateDevices to simulate camera and microphone devices.
mock_navigator_connection.js Spoofs navigator.connection properties like downlink, effectiveType, and rtt.
mock_navigator_plugins_and_mimetypes.js Fakes navigator.plugins and navigator.mimeTypes to simulate common browser plugins.
mock_webrtc.js Disables or spoofs WebRTC APIs like RTCPeerConnection to prevent IP leaks and fingerprinting.
navigator_properties.js Spoofs multiple navigator properties (webdriver, plugins, languages, platform, etc.)
override_function_toString.js Overrides Function.prototype.toString to return legitimate source code for spoofed functions.
permissions_query_patch.js Patches navigator.permissions.query to avoid errors and spoof notification permission state.
rtc_peerconnection_patch.js Intercepts WebRTC ICE candidates to hide local IP addresses and prevent leaks.
screen_properties.js Spoofs screen and window size properties to mask headless or virtual environment detection.
spoof_canvas_fingerprint.js Alters Canvas API methods to return noisy or altered pixel data to defeat canvas fingerprinting.
spoof_webgl_precision.js Modifies WebGL precision parameters to match real hardware profiles.
webgl_spoof.js Spoofs WebGL vendor and renderer strings to appear as common GPUs (e.g., NVIDIA).

Injecting these scripts selectively or all together via the StealthToolkit module allows fine-grained control over stealth level and evasion techniques.


Human Behavior Simulation

The HumanBehaviorSimulator mimics real user input with:

  • Natural mouse movement with Bezier curves and noise
  • Randomized pauses and hesitations
  • Realistic typing with variable delays and error simulation
  • Scrolling with randomized deltas

These features reduce detection by behavior analysis systems.


Project Structure

zealium/
├── core.py          # Main controller for browser launch, stealth, human simulation
├── human.py         # Human input simulation (mouse, keyboard)
├── stealth.py       # JS stealth injection toolkit
└── injections/      # JS patches for fingerprint spoofing

Future Improvements

Zealium will evolve into a fully independent project, removing the dependency on pychrome entirely. The future version will feature a native CDP client that communicates with Chromium via PIPE, enabling more robust, stealth-oriented automation. This transition will allow for finer orchestration of browser instances with improved isolation, performance, and undetectability—making Zealium a dedicated solution for secure and anonymous browser control.


Disclaimer

Zealium is intended for educational and ethical automation use only. Misuse to violate terms of service or conduct unauthorized scraping may be illegal. Use responsibly.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zealium-0.1.7.post2.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zealium-0.1.7.post2-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file zealium-0.1.7.post2.tar.gz.

File metadata

  • Download URL: zealium-0.1.7.post2.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.2 Linux/6.1.0-39-amd64

File hashes

Hashes for zealium-0.1.7.post2.tar.gz
Algorithm Hash digest
SHA256 36986cd159b2035877ee5ae37c45fc781899017da1c05e173605e1c62360ea0d
MD5 0f9fe0b00af9bb8fa31d39ff6c4a7534
BLAKE2b-256 cc1bef6676a951fe360fc865e497a9e66402374604eb6d6daa9b91e4681184f2

See more details on using hashes here.

File details

Details for the file zealium-0.1.7.post2-py3-none-any.whl.

File metadata

  • Download URL: zealium-0.1.7.post2-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.2 Linux/6.1.0-39-amd64

File hashes

Hashes for zealium-0.1.7.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 5f80a870da74d60996018194bccd04da492f3aa615fdb577e2bf1f092cd5895f
MD5 abfc0876f7791e6e37ccf1fde98e1e42
BLAKE2b-256 e66a53f1072470d8b4f7ebecd80587e1292b01d6c4a3fb123745b9cc891fc3ec

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page