Skip to main content

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

Project description

Sure! Here's a professional README.md draft in English for your zealium project, focused on stealth Chromium automation, human behavior simulation, and anti-bot fingerprint evasion:


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

We plan to replace the pychrome dependency with a custom, lightweight CDP client built from scratch. This tool will directly interact with the Chromium DevTools Protocol, offering greater control, stability, and performance, tailored specifically for stealth automation use cases.


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.2.tar.gz (13.7 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.2-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file zealium-0.1.2.tar.gz.

File metadata

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

File hashes

Hashes for zealium-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c15250ecf0e23320a5244fb9f858e4c10ec67b57e474d07ec50c56ce719f6143
MD5 c61fe346dbe29a69dcb6defe7d276881
BLAKE2b-256 cc69b1075934dfe65b759eca23d1fbb35d7c945a6378cf84c779f2806692b7fc

See more details on using hashes here.

File details

Details for the file zealium-0.1.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for zealium-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 97057ae6949bb2985e4b293d183d24d55d4b3f1387ea55e09e4caf380c0eabe6
MD5 54bf1681232c7c4d9f9d795c3a3409f9
BLAKE2b-256 486e858768023531b1203cbea8077e2c34eb9e317f8dd6ea31eddd087d7274d7

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