Skip to main content
Glama
WhiteNightShadow

camoufox-reverse-mcp

camoufox-reverse-mcp

中文 | English

Servidor MCP basado en un navegador anti-huellas, diseñado específicamente para ingeniería inversa de JavaScript.

Un servidor MCP (Model Context Protocol) que permite a los asistentes de codificación por IA (Claude Code, Cursor, Cline, etc.) realizar operaciones de ingeniería inversa a través del navegador anti-huellas Camoufox, tales como: análisis de parámetros de interfaz, análisis estático de archivos JS, depuración dinámica con puntos de interrupción, seguimiento mediante Hook de funciones, interceptación de tráfico de red, análisis de bytecode JSVMP, gestión de cookies/almacenamiento, entre otros.

¿Por qué elegir Camoufox?

Característica

chrome-devtools-mcp

camoufox-reverse-mcp

Motor del navegador

Chrome (Puppeteer)

Firefox (Camoufox)

Solución anti-detección

Ninguna

Falsificación de huellas a nivel de motor C++

Capacidad de depuración

Limitada (sin puntos de interrupción)

Playwright + JS Hook

Análisis JSVMP

Ninguno

Instrumentación del intérprete + reescritura a nivel de código fuente

Persistencia de Hook

No soportada

Persistencia a nivel de contexto, reinyección automática tras navegación

Ventajas principales:

  • Camoufox modifica la información de la huella a nivel de C++, no mediante parches en la capa JS, por lo que es indetectable desde la raíz.

  • El aislamiento del sandbox del protocolo Juggler hace que Playwright sea completamente indetectable para el JS de la página.

  • BrowserForge genera huellas basadas en distribuciones estadísticas de tráfico del mundo real, no mediante combinaciones aleatorias.

  • Funciona correctamente en sitios con fuertes medidas anti-bot como RS, AK, JY, CF, etc.

  • Los Hooks utilizan Object.defineProperty con protección contra sobrescritura, impidiendo que los scripts de la página restauren los métodos originales.


Inicio rápido

Método 1: Instalación directa desde el chat de IA (Recomendado)

En el cuadro de diálogo de tu herramienta de codificación por IA (Cursor / Claude Code / Codex, etc.), escribe:

帮我安装下这个mcp工具:camoufox-reverse-mcp
项目地址:https://github.com/WhiteNightShadow/camoufox-reverse-mcp

La IA completará automáticamente todo el proceso de clonación, instalación de dependencias y configuración del servidor MCP.

Método 2: Instalación manual

git clone https://github.com/WhiteNightShadow/camoufox-reverse-mcp.git
cd camoufox-reverse-mcp
pip install -e .

Configuración del cliente

{
  "mcpServers": {
    "camoufox-reverse": {
      "command": "python",
      "args": ["-m", "camoufox_reverse_mcp"]
    }
  }
}
{
  "mcpServers": {
    "camoufox-reverse": {
      "command": "python",
      "args": ["-m", "camoufox_reverse_mcp", "--headless"]
    }
  }
}
{
  "mcpServers": {
    "camoufox-reverse": {
      "command": "python",
      "args": [
        "-m", "camoufox_reverse_mcp",
        "--proxy", "http://127.0.0.1:7890",
        "--geoip",
        "--humanize"
      ]
    }
  }
}

Lista de herramientas disponibles (35 en total)

Control del navegador

Herramienta

Descripción

launch_browser

Inicia el navegador anti-huellas Camoufox

close_browser

Cierra el navegador y libera recursos

navigate

Navega a la URL especificada (soporta pre_inject_hooks y seguimiento de redirect_chain)

reload

Recarga la página

take_screenshot

Captura de pantalla (soporta página completa o elementos específicos)

take_snapshot

Obtiene el árbol de accesibilidad de la página (eficiente en tokens)

click / type_text

Clic en elemento / Introducir texto

wait_for

Espera a que aparezca un elemento o coincida una URL

get_page_info

Obtiene la URL, título y dimensiones del viewport de la página actual

Ejecución y depuración de JS

Herramienta

Descripción

evaluate_js

Ejecuta cualquier expresión JS en el contexto de la página (análisis JSON con múltiples estrategias)

Análisis de scripts

Herramienta

Descripción

scripts(action)

Gestión de scripts: list listar / get obtener código fuente / save guardar localmente

search_code

Búsqueda de palabras clave (script_url=None búsqueda global, si se especifica URL búsqueda en script único, detección automática de archivos comprimidos con contexto a nivel de caracteres)

Hook y seguimiento

Herramienta

Descripción

hook_function

Hook o seguimiento de funciones: mode="intercept" inyectar código / mode="trace" seguimiento no intrusivo

inject_hook_preset

Inyección en un clic de Hooks preestablecidos (xhr / fetch / crypto / websocket / debugger_bypass / cookie / runtime_probe)

remove_hooks

Elimina todos los Hooks y restaura los objetos originales

get_console_logs

Obtiene las salidas de consola de la página

Análisis de red

Herramienta

Descripción

network_capture(action)

Control de captura de red: start / stop / clear / status

list_network_requests

Lista las peticiones capturadas (soporta filtrado por URL / dominio / método / tipo / código de estado)

get_network_request

Obtiene detalles completos de la petición (max_body_size controla el truncamiento del cuerpo)

get_request_initiator

Obtiene la pila de llamadas JS que inició la petición

intercept_request

Intercepta peticiones: log / block / modify / mock / stop

Análisis de ingeniería inversa JSVMP

Tabla de referencia: Tipo de anti-bot → Ruta de herramienta

Tipo de anti-bot

Representante

✅ Ruta recomendada

❌ Deshabilitar

Tipo firma (entorno = firma)

RS 5/6, AK sensor_data

instrumentation(action="install")

pre_inject_hooks, hook_jsvmp_interpreter(mode="proxy")

Tipo comportamiento (firma de parámetros)

TK JSVMP, JY gt4

hook_jsvmp_interpreter(mode="proxy")

Ofuscación pura

Herramientas de ofuscación JS comunes

Cualquier combinación

Herramienta

Descripción

hook_jsvmp_interpreter

Sonda de tiempo de ejecución JSVMP (mode="proxy" cobertura total / mode="transparent" seguridad de firma)

instrumentation(action)

Instrumentación a nivel de código fuente: install registrar reescritura / log obtener logs / stop detener / reload recargar / status ver estado

compare_env

Recopilación de huellas del entorno del navegador, para comparar con Node.js/jsdom

Cookies y almacenamiento

Herramienta

Descripción

cookies(action)

Gestión de cookies: get / set / delete

get_storage

Obtiene localStorage / sessionStorage

export_state / import_state

Exporta / Importa el estado completo del navegador

Verificación y entorno

Herramienta

Descripción

verify_signer_offline

Verificación offline de funciones de firma: pasa una lista de muestras, compara carácter por carácter, localiza el primer punto de desviación

check_environment

Autodiagnóstico integral: versión de MCP, dependencias, estado del navegador, detección de versión personalizada de camoufox-reverse

reset_browser_state

Limpia residuos (hooks / capture / routes), sin cerrar el navegador

Seguimiento de propiedades a nivel de motor (Nuevo en v1.1.0)

Requiere la versión personalizada camoufox-reverse. Si no está instalada, devuelve un error sin afectar a otras herramientas.

Herramienta

Descripción

trace_property_access

Seguimiento de acceso a propiedades DOM a nivel de motor C++ (indetectable por JSVMP). Soporta vistas summary/timeline/sequence/search. duration=0 lee todos los eventos desde el inicio, duration>0 abre una nueva ventana de seguimiento. collect_values=True lee automáticamente los valores reales de todas las propiedades desde el navegador (los valores grandes se guardan en archivos)

list_trace_files

Lista todos los archivos de seguimiento locales (para análisis posterior)

query_trace_file

Consulta archivos de seguimiento históricos especificados, soporta filtrado por objeto/palabra clave


Ejemplos de casos de uso

Caso 1: Ingeniería inversa de parámetros de firma en interfaces de inicio de sesión

1. launch_browser()
2. inject_hook_preset("xhr")
3. inject_hook_preset("crypto")
4. navigate("https://example.com/login")
5. type_text("#username", "test") → click("#login-btn")
6. list_network_requests(method="POST")
7. get_request_initiator(request_id=3)     ← 定位签名函数
8. search_code("sign")                     ← 搜索签名代码
9. hook_function("window.getSign", mode="trace")
10. reload() → get_console_logs()          ← 收集追踪数据

Caso 2: Ingeniería inversa JSVMP genérica (RS / AK / VMP de desarrollo propio)

1. launch_browser()
2. network_capture(action="start")
3. navigate("https://target-site.com/")
4. list_network_requests(resource_type="script")  ← 找到 VMP 脚本
5. instrumentation(action="install", url_pattern="**/vmp_target*.js", mode="ast")
6. inject_hook_preset("cookie", persistent=True)
7. instrumentation(action="reload")               ← 让插桩生效
8. instrumentation(action="log", type_filter="tap_get")  ← 看 VMP 读了什么环境
9. instrumentation(action="log", type_filter="tap_method") ← 看 VMP 调了什么 API
10. compare_env()                                  ← 收集环境用于 Node.js 补齐

Caso 3: Verificación de código de protocolo

1. launch_browser() → navigate("https://target.com")
2. network_capture(action="start")
3. # 触发目标操作,收集带签名的请求
4. reqs = list_network_requests(url_filter="api/search")
5. # 提取样本
6. verify_signer_offline(
     signer_code="(s) => ({'X-Bogus': mySign(s.url)})",
     samples=[{"id": "r1", "input": {...}, "expected": {"X-Bogus": "..."}}]
   )

👉 Consulta la identificación completa de tipos anti-bot y el flujo de trabajo en docs/JSVMP_PLAYBOOK.md

Caso 4: Seguimiento de huellas del entorno JSVMP a nivel de motor (Nuevo en v1.1.0)

Requiere navegador personalizado camoufox-reverse

1. launch_browser(enable_trace=True)           ← 启动带 C++ 追踪的浏览器
2. navigate("https://www.douyin.com/video/xxx") ← JSVMP 执行,事件自动记录
3. trace_property_access(duration=0, mode="summary", collect_values=True)
   → 返回 JSVMP 实际读取的 42 个 DOM 属性、访问频次、以及真实值
   → 小值内联返回,大值(Canvas/WebGL/Cookie 等)自动保存到
     ~/.cache/camoufox-reverse/values/ 目录

# 按时间线查看属性访问节奏
4. trace_property_access(duration=0, mode="timeline", bucket_ms=500)

# 按对象过滤
5. trace_property_access(duration=0, filter_object="webgl")

# 搜索特定属性
6. trace_property_access(duration=0, mode="search", search_query="cookie")

Diferencia con compare_env:

  • trace_property_access: Rastrea las propiedades que JSVMP realmente lee (preciso, capa C++, indetectable)

  • compare_env: Recopila todas las propiedades del entorno del navegador (total, capa JS)

  • Al realizar la suplantación de entorno en la ruta B, utiliza los resultados del trace para decidir "qué propiedades complementar", evitando añadir demasiadas y crear nuevos puntos de fuga.


Arquitectura técnica

┌─────────────────────────────────────────────────┐
│           AI 编码助手 (Cursor / Claude)          │
│                    ↕ MCP (stdio)                 │
├─────────────────────────────────────────────────┤
│           camoufox-reverse-mcp (35 tools)        │
│  ┌──────────┬──────────┬──────────┬──────────┐  │
│  │Navigation│ Script   │Debugging │ Hooking  │  │
│  │          │ Analysis │          │          │  │
│  ├──────────┼──────────┼──────────┼──────────┤  │
│  │ Network  │ JSVMP    │  Cookie  │  Verify  │  │
│  │ Capture  │ Analysis │ Storage  │  Signer  │  │
│  ├──────────┴──────────┴──────────┴──────────┤  │
│  │ ★ PropertyTracer (trace_property_access)  │  │
│  │   C++ 引擎层 DOM 属性追踪(JSVMP 不可检测)  │  │
│  └───────────────────────────────────────────┘  │
│                    ↕ Playwright API               │
├─────────────────────────────────────────────────┤
│      Camoufox (反指纹 Firefox, Juggler 协议)      │
│  C++ 引擎级指纹伪造 · BrowserForge 真实指纹分布     │
└─────────────────────────────────────────────────┘

Registro de actualizaciones

v1.1.0 (2026-04-22) — Seguimiento de propiedades a nivel de motor

Se añaden 3 herramientas, launch_browser añade el parámetro enable_trace.

Nuevas herramientas

  • trace_property_access — Seguimiento de acceso a propiedades DOM a nivel de motor C++ (indetectable por JSVMP), soporta vistas summary/timeline/sequence/search

  • list_trace_files — Lista archivos de seguimiento locales

  • query_trace_file — Consulta archivos de seguimiento históricos

Cambios

  • launch_browser añade el parámetro enable_trace, al activarse inyecta automáticamente CAMOU_CONFIG y MOZ_DISABLE_CONTENT_SANDBOX

  • check_environment añade el campo camoufox_reverse, detecta el estado de instalación del navegador personalizado

Dependencias

  • Requiere el navegador personalizado camoufox-reverse (opcional, no instalarlo no afecta a las otras 32 herramientas)

v1.0.0 (2026-04-18) — Simplificación de herramientas + Regreso al conjunto de herramientas de ingeniería inversa JS puro

Versión mayor: 80 → 32 herramientas, tokens de esquema reducidos a la mitad. Se eliminan el sistema de archivos de sesión/aserciones, volviendo a la posición de herramienta de ingeniería inversa JS pura.

Fusión de herramientas (v0.9.0)

  • network_capture(action=start/stop/clear/status) ← start/stop_network_capture

  • scripts(action=list/get/save) ← list_scripts / get_script_source / save_script

  • search_code(keyword, script_url=None) ← search_code / search_code_in_script

  • hook_function(path, mode=intercept/trace) ← hook_function / trace_function

  • instrumentation(action=install/log/stop/reload/status) ← instrument_jsvmp_source / get_instrumentation_log / stop_instrumentation / reload_with_hooks / get_instrumentation_status

  • cookies(action=get/set/delete) ← get_cookies / set_cookies / delete_cookies

Herramientas eliminadas

  • Sistema de archivos de sesión (7): start/stop_reverse_session, list_sessions, get_session_snapshot, attach_domain_readonly, export/import_session

  • Sistema de aserciones (4): add/verify/list/remove_assertion

  • Herramientas en desuso (37): trace_property_access, freeze_prototype, find_dispatch_loops, get_page_content, bypass_debugger_trap, check_detection, get_fingerprint_info, dump_jsvmp_strings, evaluate_js_handle, add_init_script, set_breakpoint_via_hook, get_breakpoint_data, etc.

Novedades

  • verify_signer_offline — Verificación de funciones de firma sin estado (reemplaza a verify_against_session)

Corrección de errores (v0.8.1)

  • evaluate_js: Análisis JSON con múltiples estrategias (limpieza de caracteres de control, desempaquetado de doble codificación)

  • navigate: Limpieza predeterminada de caché de red, evitando contaminación de peticiones entre navegaciones

  • get_network_request: Parámetro max_body_size controla el truncamiento del cuerpo (predeterminado 5000)

  • launch_browser: Diagnóstico de estado residual cuando ya está en ejecución

Dependencias eliminadas: tldextract (solo usado por Session)

Filosofía de diseño: MCP es un conjunto de herramientas puro (sin estado), no realiza gestión de flujos de trabajo. La memoria/acumulación de proyectos de análisis pertenece a la capa de habilidades y al espacio de trabajo del usuario.

v0.6.0 — Corrección de errores prácticos

  • hook_jsvmp_interpreter(mode="proxy"): Se corrige la recursión de Proxy que causaba too much recursion

  • remove_hooks: Restaura realmente el objeto Proxy

  • evaluate_js: Limpieza automática de BOM / lone surrogate / espacios en blanco

  • instrument_jsvmp_source: Pre-verificación de CSP

  • navigate: Degradación elegante ante tiempos de espera

v0.5.0 — Compatibilidad con anti-bot tipo firma

  • instrument_jsvmp_source reescritura de AST en el lado de MCP por defecto

  • hook_jsvmp_interpreter añade mode="transparent"

  • Tabla de decisión de tipos anti-bot + JSVMP Playbook

v0.4.0 — Adaptación JSVMP genérica

  • Instrumentación a nivel de código fuente, atribución de cookies, sondas de tiempo de ejecución

  • Reescritura de cobertura de múltiples rutas en hook_jsvmp_interpreter

v0.3.0 — Correcciones de estabilidad

v0.2.0 — Persistencia de Hook + Análisis JSVMP

v0.1.0 — Versión inicial (44 herramientas)


Comentarios / Intercambio

Si encuentras errores durante el uso, deseas nuevos preajustes de Hook o quieres intercambiar ideas sobre ingeniería inversa JS, bienvenido a añadir WeChat:

  • WeChat ID: han8888v8888

Al añadir, por favor indica "camoufox-reverse" para una aprobación rápida.

Licencia

MIT

Install Server
F
license - not found
A
quality
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WhiteNightShadow/camoufox-reverse-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server