A powerful browser extension for detecting CAPTCHAs, anti-bot systems and fingerprinting technologies on websites
Scrapfly Security Detection is a Manifest V3 Chrome extension that helps security researchers, web developers, and bot detection enthusiasts identify and analyze:
- CAPTCHAs: reCAPTCHA, hCaptcha, FunCaptcha, GeeTest
- Anti-bot systems: Cloudflare, Akamai, DataDome, PerimeterX, Shape Security, AWS WAF, and more
- Fingerprinting techniques: Canvas, WebGL, Audio, Font, WebRTC, and other browser fingerprinting methods
- DOM Analysis: Detects scripts, classes, and HTML elements
- Network Monitoring: Analyzes cookies, headers, and URLs
- JavaScript Hooks: Intercepts fingerprinting API calls (Canvas, WebGL, Audio, etc.)
- Window Properties: Checks for anti-bot objects in the global scope
- CSS Detection: Identifies protection-specific stylesheets
- Real-time Detection: Live detection results with confidence scores
- Detection History: Track detected systems across browsing sessions
- Advanced Capture Tools: Specialized tools for reCAPTCHA, Akamai, Imperva, Shape Security, and AWS WAF
- Intermediate Page Handling: Automatically captures data from challenge pages before redirect (AWS WAF, Shape Security)
- Rules Editor: Customize and manage detection rules
- Settings Panel: Configure cache duration, history limits, and URL blacklists
- Smart Caching: 12-hour detection cache to reduce overhead
- Pattern Caching: LRU cache for compiled regex patterns (60-80% faster)
- Early Exit: Stops detection after finding high-confidence matches
- Lazy Evaluation: On-demand data collection
- Batched Operations: Optimized DOM traversal and storage writes
- No Data Collection: All detection happens locally in your browser
- CSP Compliant: No inline event handlers or unsafe-eval
- Context Isolation: Proper separation between page and extension contexts
- Safe Conditions: Pre-compiled evaluators (no eval/arbitrary code execution)
Coming soon...
-
Download the Extension
git clone https://github.com/diegopzz/Antibot-Detector.git cd Antibot-Detector/core
-
Load in Chrome
- Open Chrome and navigate to
chrome://extensions/
- Enable Developer mode (top-right toggle)
- Click Load unpacked
- Select the
core/
folder
- Open Chrome and navigate to
-
Start Detecting
- Click the extension icon in your toolbar
- Browse to any website
- View detected security systems in the popup
- Navigate to a Website: The extension automatically scans pages
- Open Popup: Click the extension icon to view results
- View Details: Click on any detection card to see full details
- Copy Results: Use the copy button to export detection data
- Start Capture
- Obtain Selector
- Extract SiteKey
- ReCaptcha CallBack
- Start Capture
- Extract Sensor Data
- Check Cookies
- Analyze Scripts
- Start Capture
- Check Headers
- Analyze Scripts
- Start Capturing
- Check Cookies
- Analyze Scripts
- Browse Detectors: View all detection rules by category
- Edit Rules: Modify detection patterns, confidence scores, and settings
- Add Methods: Create new detection methods (Cookie, Header, URL, Content, DOM, Window, JS Hooks, CSS)
- Pattern Options: Configure regex, whole-word, and case-sensitive matching
- Import/Export: Share rules via JSON files
- Cache Duration: Set detection cache expiry (1-24 hours)
- History Limit: Control max history items (10-500)
- URL Blacklist: Exclude specific domains from detection
- Auto-cleanup: Automatic history expiration
core/
βββ manifest.json # Extension configuration (Manifest V3)
βββ background.js # Service worker (message handling, detection)
βββ content.js # Content script (page data collection)
βββ content-main-world.js # JS hooks installer (MAIN world)
βββ popup.js/html/css # Extension popup UI
β
βββ detectors/ # JSON detector definitions
β βββ antibot/ # Cloudflare, Akamai, DataDome, etc.
β βββ captcha/ # reCAPTCHA, hCaptcha, etc.
β βββ fingerprint/ # Canvas, WebGL, Audio, etc.
β βββ index.json # Category configuration
β
βββ modules/ # Core managers (singleton pattern)
β βββ detection-engine-manager.js # Detection orchestration
β βββ detector-manager.js # Detector CRUD operations
β βββ category-manager.js # Category metadata
β βββ confidence-manager.js # Confidence calculations
β βββ notification-manager.js # Toast notifications
β βββ pagination-manager.js # Pagination component
β βββ color-manager.js # Color picker UI
β βββ search-manager.js # Advanced search
β
βββ sections/ # UI sections (modular architecture)
β βββ detection/ # Detection results tab
β βββ history/ # Detection history tab
β βββ rules/ # Detector rules editor
β βββ settings/ # Settings & configuration
β βββ advanced/ # Advanced capture tools
β βββ base-interceptor-helpers.js # Service worker utilities
β βββ advanced-utils.js # Popup UI utilities
β βββ base-advanced-module.js # Base class for modules
β βββ modules/ # Detector-specific tools
β βββ recaptcha/
β βββ akamai/
β βββ imperva/
β βββ shapesecurity/
β βββ awswaf/
β
βββ utils/ # Utility functions
βββ utils.js # Core utilities
βββ debug.js # Debug logging
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Page Load β
β ββ> content.js injects content-main-world.js β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. Data Collection (content.js) β
β ββ> DetectionEngineManager.collectPageData() β
β β’ DOM elements, scripts, classes β
β β’ Cookies, headers (via background.js) β
β β’ Window properties (via MAIN world) β
β β’ JS hooks (via MAIN world) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. Detection (background.js) β
β ββ> DetectionEngineManager.detectOnPage() β
β β’ Pattern matching against detectors β
β β’ Confidence score calculation β
β β’ Results aggregation β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. Storage & Display β
β ββ> Cache results (12-hour expiry) β
β ββ> Update popup UI with detections β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Singleton Managers: DetectorManager, CategoryManager for centralized state
- Event-Driven Communication: postMessage for MAIN β ISOLATED world communication
- Modular Sections: Each UI section is self-contained (JS + HTML + CSS)
- JSON-Driven Detectors: All detection rules stored in JSON for easy updates
- LRU Caching: Pattern cache, URL hash cache for performance
- Observer Pattern: Real-time updates via Chrome extension messaging
- Google Chrome (latest version)
- Basic understanding of:
- Chrome Extension APIs (Manifest V3)
- JavaScript (ES6+)
- HTML/CSS
- Content Script isolation
# Clone repository
git clone https://github.com/diegopzz/Antibot-Detector.git
cd Antibot-Detector/core
# Load extension in Chrome
# 1. Go to chrome://extensions/
# 2. Enable Developer mode
# 3. Click "Load unpacked"
# 4. Select the core/ folder
- Make Changes: Edit files in
core/
- Reload Extension: Click reload button in
chrome://extensions/
- Test: Browse to test websites
- Debug:
- Popup: Right-click extension icon β Inspect popup
- Background: Service worker link in chrome://extensions/
- Content Script: Regular DevTools on any webpage
-
Create JSON File:
detectors/[category]/[name].json
{ "id": "my-detector", "name": "My Detector", "category": "Anti-Bot", "color": "#3B82F6", "confidence": 85, "lastUpdated": "2025-01-15", "version": "1.0.0", "icon": "my-detector.png", "description": "My custom security system detector", "detection": { "cookie": [ { "name": "__my_cookie", "confidence": 90, "description": "Main tracking cookie" } ], "content": [ { "content": "my-security-script.js", "confidence": 80, "description": "Security script identifier" } ], "url": [ { "pattern": "/security/challenge", "confidence": 85 } ] } }
-
Test Detection: Reload extension and visit test page
-
Adjust Confidence: Fine-tune based on false positive rate
- File Naming: Always use lowercase kebab-case (e.g.,
detector-manager.js
) - No Build System: Pure JavaScript/HTML/CSS (no transpilation)
- CSP Compliance: No inline event handlers or unsafe-eval
- Code Style: ES6+ features, clear variable names, comprehensive comments
- Performance: Use caching, lazy evaluation, early exit patterns
The extension has been extensively optimized across 8 phases:
- Detection Speed: 60-80% faster than baseline
- Memory Usage: 50-70% reduction
- Pattern Matching: 60-80% faster with LRU cache
- DOM Operations: 60-70% faster with single-pass tree walk
- Network Fetching: 5-10x faster with parallel requests
- Cache Hit Rate: ~80% on typical browsing patterns
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a new detector JSON file
- Test thoroughly on multiple websites
- Submit a pull request with:
- Detector JSON file
- Test cases (URLs where it works)
- Confidence score justification
Please include:
- Chrome version
- Extension version
- Steps to reproduce
- Expected vs actual behavior
- Console logs (if applicable)
Open an issue with:
- Use case description
- Proposed solution
- Alternative approaches considered
This project is licensed under the Non-Profit Open Software License 3.0 (NPOSL-3.0).
Copyright (c) 2025 Scrapfly
- β Free to use for personal and non-profit purposes
- β Modify and distribute with attribution
- β Create derivative works under the same license
- β Patent protection for contributors
- β Commercial use requires separate licensing
See the LICENSE file for complete terms and conditions.