Welcome to GeekEZ Browser
Relevant source files
The following files were used as context for generating this wiki page:GeekEZ Browser is a professional anti-detect browser designed for e-commerce operators and multi-account management. Built upon a stack of Electron, Puppeteer, and Xray-core, it provides a secure and isolated environment for each browser profile. The core design philosophy is "Native Consistency," which aims to mimic real browser behavior as closely as possible to bypass advanced detection mechanisms like Cloudflare Turnstile and BrowserScan.
The application strictly isolates browser fingerprints, network environments, and local storage for each profile. This is achieved through a combination of hardware parameter randomization, media fingerprint noise injection, and a powerful, configurable network engine. The user interface, built with standard web technologies, allows for intuitive management of profiles, proxies, and browser extensions.
Architecture Overview
GeekEZ Browser uses an Electron-based architecture, separating the main application logic from the user interface. It integrates Puppeteer to control headless Chrome instances and Xray-core to handle all network proxying.
This diagram shows the high-level interaction between the core components of the application.
Main Process (main.js):* The backend of the application. It manages browser windows, handles all file system operations (profiles, settings), and orchestrates the launching and closing of browser profiles, including the underlying Xray and Puppeteer processes.
- Renderer Process (
index.html,renderer.js): The frontend UI that the user interacts with. It's responsible for displaying the list of profiles, handling user input through various modals (add/edit profile, proxy manager), and communicating with the main process via IPC calls. - Puppeteer: A Node library used to control a real Chrome browser instance for each profile. It applies launch arguments to enforce security and fingerprinting settings.
- Xray-core: A powerful proxy core that handles all network traffic for each browser instance, supporting numerous protocols and advanced routing features.
Sources: main.js, renderer.js, README.md
Key Features
GeekEZ Browser provides a suite of features focused on security, performance, and manageability.
| Feature Category | Description | Source |
|---|---|---|
| Advanced Fingerprint Isolation | Randomizes hardware (CPU, Memory) and media (Canvas, WebGL, Audio) fingerprints for each profile to ensure uniqueness. | CHANGELOG_v1.2.3.md, README.md |
| Performance Optimized | Achieves up to 40% faster startup and 30% less RAM usage through optimized Xray integration, smart cache management, and automatic cleanup. | README.md, main.js:524-536 |
| Powerful Network Engine | Leverages Xray-core to support a wide range of protocols (VMess, VLESS, Trojan, etc.) and advanced transport mechanisms like REALITY and gRPC. | README.md |
| Workflow & Management | Includes features like a tag system, support for unpacked Chrome extensions, and a secure method for displaying profile names via the Bookmarks Bar. | README.md, main.js:433-441 |
Sources: README.md, CHANGELOG_v1.2.3.md, main.js
Installation and Setup
The application can be run from source or installed from a pre-built binary. When running from source, a setup script is executed automatically after dependency installation.
Setup Script (setup.js)
The setup.js script, triggered by the postinstall command in package.json, is responsible for preparing the necessary binaries for the application to function.
This flowchart illustrates the logic of the setup script.
- Network Check: It first checks for global internet access to decide whether to use a proxy mirror for downloads.
- Download Xray-core: It downloads the appropriate Xray-core binary for the user's OS and architecture.
- Download Chrome: It uses
@puppeteer/browsersto download a specific version of Chrome for Testing, which is essential for ensuring a consistent and clean browser environment. - Cleanup: The script cleans up temporary files after extraction.
Sources: setup.js, package.json:10
Profile Management
Profile management is the core of GeekEZ Browser. All profile data is stored in profiles.json within the application's user data directory.
Profile Data Structure
Each profile is a JSON object with a specific structure that defines its configuration, proxy, and fingerprint.
| Field | Type | Description |
|---|---|---|
id | string | A unique identifier (UUID) for the profile. |
name | string | A user-defined name for the profile. |
proxyStr | string | The proxy connection string (e.g., vmess://...). |
tags | string[] | An array of strings for organizing profiles. |
fingerprint | object | An object containing all the spoofed fingerprint data. |
preProxyOverride | string | Setting for chain proxy (default, on, off). |
Sources: main.js:311-319, renderer.js:774-793
Profile Launch Sequence
Launching a profile is a multi-step process orchestrated by main.js.
The following sequence diagram details the steps involved when a user clicks the "Launch" button.
Sources: main.js:462-608, renderer.js:796-801
Fingerprint Isolation
Fingerprint isolation is achieved by injecting a custom JavaScript payload and applying specific Chromium launch arguments.
Fingerprint Injection
- Extension Generation: For each profile launch, a temporary extension named
GeekEZ Guardis created by thegenerateExtensionfunction inmain.js. - Content Script: This extension contains a
content.jsfile, which is generated by thegetInjectScriptutility. This script runs atdocument_startin theMAINworld, allowing it to override JavaScript properties (likenavigator.hardwareConcurrencyor WebGL parameters) before any website scripts can execute. - Launch Arguments: The browser is launched with
--load-extensionand--disable-extensions-exceptto ensure only the intended extensions are active.
Sources: main.js:100-112, main.js:511-522
Spoofed Parameters
The browser spoofs a variety of parameters to create a unique fingerprint for each profile.
| Parameter | Spoofing Method | Source |
|---|---|---|
| CPU Cores | Randomized (4/8/12/16) via JS injection. | CHANGELOG_v1.2.3.md |
| Device Memory | Randomized (4/8/16 GB) via JS injection. | CHANGELOG_v1.2.3.md |
| Canvas, WebGL, Audio | Non-intrusive noise is added to generate unique hashes. | README.md |
| Timezone | Set via JS injection, matching the proxy location. | main.js:313, README.md |
| WebRTC | Real IP leak is prevented by forcing the disable_non_proxied_udp policy via a launch argument. | main.js:528, README.md |
| User-Agent | A specific User-Agent string is applied. | main.js:806 |
| TLS Fingerprint | Uses a real Chrome browser, ensuring the TLS (JA3) fingerprint is native and not flagged. | README.md |
Sources: README.md, CHANGELOG_v1.2.3.md, main.js
Network Engine
The network engine is powered by Xray-core, providing robust and flexible proxying capabilities.
Proxy Configuration
When a profile is launched, main.js calls the generateXrayConfig utility. This function creates a JSON configuration file for Xray that includes:
- An inbound SOCKS5 listener on a free local port.
- An outbound connection configured based on the profile's
proxyStr. - An optional "pre-proxy" (chain proxy) if enabled in the global settings or for the specific profile.
This diagram illustrates the data flow for a proxied request.
Sources: main.js:444-445, README.md
Proxy Management UI
The renderer.js and index.html files define a comprehensive UI for managing proxies, including:
- Proxy Subscriptions: Import proxy nodes from a remote URL.
- Modes:
- Single Node: Manually select one proxy.
- Load Balance: Randomly select a proxy for each new connection.
- Failover: Use proxies in a specified order.
- Latency Testing: Test the connection speed to each proxy node.
Sources: renderer.js:1040-1056, index.html:1003-1021
Conclusion
GeekEZ Browser is a sophisticated tool for managing multiple online identities securely. Its architecture effectively combines Electron for the application shell, Puppeteer for browser control, and Xray-core for advanced networking. The key strengths lie in its deep fingerprint isolation using a "Native Consistency" approach and its highly configurable profile and network management system. By focusing on both security and performance, it provides a reliable solution for its target users in the e-commerce and multi-account management space.