camoufox-reverse-mcp
camoufox-reverse-mcp
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.definePropertycon 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-mcpLa 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 |
| Inicia el navegador anti-huellas Camoufox |
| Cierra el navegador y libera recursos |
| Navega a la URL especificada (soporta pre_inject_hooks y seguimiento de redirect_chain) |
| Recarga la página |
| Captura de pantalla (soporta página completa o elementos específicos) |
| Obtiene el árbol de accesibilidad de la página (eficiente en tokens) |
| Clic en elemento / Introducir texto |
| Espera a que aparezca un elemento o coincida una URL |
| Obtiene la URL, título y dimensiones del viewport de la página actual |
Ejecución y depuración de JS
Herramienta | Descripción |
| 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 |
| Gestión de scripts: |
| Búsqueda de palabras clave ( |
Hook y seguimiento
Herramienta | Descripción |
| Hook o seguimiento de funciones: |
| Inyección en un clic de Hooks preestablecidos (xhr / fetch / crypto / websocket / debugger_bypass / cookie / runtime_probe) |
| Elimina todos los Hooks y restaura los objetos originales |
| Obtiene las salidas de consola de la página |
Análisis de red
Herramienta | Descripción |
| Control de captura de red: |
| Lista las peticiones capturadas (soporta filtrado por URL / dominio / método / tipo / código de estado) |
| Obtiene detalles completos de la petición ( |
| Obtiene la pila de llamadas JS que inició la petición |
| 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 |
| Sonda de tiempo de ejecución JSVMP ( |
| Instrumentación a nivel de código fuente: |
| Recopilación de huellas del entorno del navegador, para comparar con Node.js/jsdom |
Cookies y almacenamiento
Herramienta | Descripción |
| Gestión de cookies: |
| Obtiene localStorage / sessionStorage |
| Exporta / Importa el estado completo del navegador |
Verificación y entorno
Herramienta | Descripción |
| 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 |
| Autodiagnóstico integral: versión de MCP, dependencias, estado del navegador, detección de versión personalizada de camoufox-reverse |
| 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 |
| Seguimiento de acceso a propiedades DOM a nivel de motor C++ (indetectable por JSVMP). Soporta vistas summary/timeline/sequence/search. |
| Lista todos los archivos de seguimiento locales (para análisis posterior) |
| 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)
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_browserañade el parámetroenable_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/searchlist_trace_files— Lista archivos de seguimiento localesquery_trace_file— Consulta archivos de seguimiento históricos
Cambios
launch_browserañade el parámetroenable_trace, al activarse inyecta automáticamenteCAMOU_CONFIGyMOZ_DISABLE_CONTENT_SANDBOXcheck_environmentañade el campocamoufox_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_capturescripts(action=list/get/save)← list_scripts / get_script_source / save_scriptsearch_code(keyword, script_url=None)← search_code / search_code_in_scripthook_function(path, mode=intercept/trace)← hook_function / trace_functioninstrumentation(action=install/log/stop/reload/status)← instrument_jsvmp_source / get_instrumentation_log / stop_instrumentation / reload_with_hooks / get_instrumentation_statuscookies(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 navegacionesget_network_request: Parámetromax_body_sizecontrola 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 causabatoo much recursionremove_hooks: Restaura realmente el objeto Proxyevaluate_js: Limpieza automática de BOM / lone surrogate / espacios en blancoinstrument_jsvmp_source: Pre-verificación de CSPnavigate: Degradación elegante ante tiempos de espera
v0.5.0 — Compatibilidad con anti-bot tipo firma
instrument_jsvmp_sourcereescritura de AST en el lado de MCP por defectohook_jsvmp_interpreterañademode="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
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