MCP Frontend JS Ingeniería Inversa - Normas de Trabajo
ACCIÓN REQUERIDA (ejecutar inmediatamente después de leer)
AHORA: Leer../field-journal/precedent-reverse.md— confirmar que la operación de esta skill está autorizada como operación habitualAHORA: Confirmar si la tarea actual se encuentra dentro del alcance de esta skillSIGUIENTE: Leer../tool-index.md, verificar la disponibilidad de herramientas y las rutas realesSIGUIENTE: Si faltan herramientas, invocar bootstrap, no adivinar rutasACTUAR: Entrar en el primer paso del "flujo de trabajo" y ejecutar, no quedarse en estado de confirmación
Alcance
Usar esta skill de forma prioritaria cuando la tarea pertenezca a los siguientes escenarios:
- Localizar firmas de API, parámetros de cifrado, campos de control de riesgos
- Observar la cadena de solicitudes de la página y el origen de los scripts
- Capturar parámetros de entrada y valores de retorno de funciones en tiempo de ejecución
- Rastrear el punto de activación de una XHR/Fetch/WebSocket
- Llevar la evidencia de la página a Node para reproducción local y parcheo del entorno
Si el objetivo es un binario, APK, PE, ELF, DLL o SO, usar en su lugar ida-reverse, radare2 o reverse-engineering.
Mapeo de herramientas predeterminadas del entorno actual
Esta skill no asume la existencia de nombres de herramientas desnudos, sino que se vincula por defecto a las herramientas js-reverse_* disponibles en el entorno cliente actual.
Si la tarea actual menciona explícitamente jshookmcp, JS hook, CDP, puntos de interrupción del navegador, interceptación de red, SourceMap o desofuscación AST, también se sigue utilizando esta skill; solo se cambia la superficie MCP subyacente a jshookmcp, en lugar de tratarlo como un nuevo punto de entrada global.
Condición previa: jshookmcp no es una herramienta de comando local, sino un servidor MCP que debe descargarse, registrarse explícitamente y activarse. Solo después de conectarlo y habilitarlo en la configuración MCP del cliente seleccionado (Claude, Codex, etc.) se podrán invocar realmente sus herramientas.
Mapeo común:
list_scripts->js-reverse_list_scriptsget_script_source->js-reverse_get_script_sourcesearch_in_sources->js-reverse_search_in_sourcesbreak_on_xhr->js-reverse_break_on_xhrevaluate_script->js-reverse_evaluate_scriptget_paused_info->js-reverse_get_paused_infoset_breakpoint_on_text->js-reverse_set_breakpoint_on_textlist_network_requests->js-reverse_list_network_requestsget_request_initiator->js-reverse_get_request_initiatorget_websocket_messages->js-reverse_get_websocket_messagestake_screenshot->js-reverse_take_screenshotnew_page->js-reverse_new_pagenavigate_page->js-reverse_navigate_pageselect_page->js-reverse_select_pageselect_frame->js-reverse_select_framepause/resume->js-reverse_pause_or_resume
Si el prefijo del nombre de la herramienta cambia en el futuro, actualizar primero esta sección, no adivinar durante la ejecución.
Posicionamiento de jshookmcp
- Rol: Superficie de ejecución mejorada de
js-reverse, no un controlador independiente - Apto para: Automatización del navegador, depuración CDP, JS Hook, interceptación de red, reconstrucción de SourceMap, comprensión asistida por AST
- Requisito de invocación: Descargar
@jshookmcp/jshooky registrarlo en la configuración del cliente MCP, luego asegurarse de que el servidor esté habilitado - Entrada sugerida: Seguir ejecutando según
Observar → Capturar → Reconstruir, solo que en la faseObservar/Capturarse prioriza la invocación de las capacidades de navegador y Hook de jshookmcp - Relación con anything-analyzer: Ambos pueden realizar capturas de evidencia a nivel de navegador/red; anything-analyzer está más orientado a la captura de paquetes y análisis HTTP, mientras que jshookmcp se centra más en el tiempo de ejecución de JS, CDP, Hook y comprensión del código fuente
Principios Fundamentales
Observar-primeroHook-preferidoPunto-de-interrupción-últimoOrientado-a-reconstrucciónEvidencia-primero
Primero observar la página, luego realizar un muestreo mínimo, luego hacer parcheo del entorno local; no saltarse la obtención de evidencia y adivinar el entorno.
Flujo de Trabajo en Cinco Fases
1. Observar
Objetivo: Confirmar primero la solicitud objetivo, los scripts relacionados y las funciones candidatas; no adivinar el entorno.
Acciones predeterminadas:
- Usar
js-reverse_new_pageojs-reverse_navigate_pagepara abrir la página objetivo - Usar
js-reverse_list_network_requestspara encontrar la solicitud objetivo - Usar
js-reverse_get_request_initiatorpara rastrear el origen de la llamada - Usar
js-reverse_list_scripts,js-reverse_search_in_sourcespara reducir el alcance del script
Debe producir:
- URL o características de la solicitud objetivo
- Pistas del iniciador
- URL de scripts sospechosos
- Registro de la tarea inicial
2. Capturar
Objetivo: Realizar un muestreo mínimamente invasivo de la solicitud objetivo, obtener ejemplos de parámetros, orden de llamada y evidencia en tiempo de ejecución.
Reglas:
- Priorizar
js-reverse_break_on_xhr - Priorizar
js-reverse_evaluate_scriptpara observación ligera en tiempo de ejecución - Tras detenerse, revisar primero
js-reverse_get_paused_info - Si es necesario, usar
js-reverse_set_breakpoint_on_text
3. Reconstruir
Objetivo: Organizar la evidencia de la página en materiales de reproducción local de Node que se puedan iterar.
Reglas:
- El parcheo del entorno local debe basarse en la evidencia de observación de la página
- No se permite rellenar
window/document/navigator/crypto/storagede forma especulativa - Registrar solo una decisión de parche causal mínima a la vez
4. Parchear
Objetivo: Impulsar el parcheo del entorno basándose en errores y la primera divergencia, hasta que el script local se ejecute de manera estable y produzca los parámetros objetivo.
Reglas:
- Primero ver qué falta, luego parchear eso
- Hacer solo una decisión de parche mínima a la vez
- Probar inmediatamente después de cada parche
- Registrar cada parche en el registro de la tarea
5. Profundizar
Objetivo: Una vez que funcione localmente, proceder a la desofuscación, restauración del flujo de control y extracción de la lógica de negocio.
Reglas:
- Si la tarea actual solo consiste en generar la firma, esta fase se puede omitir
- Si se va a reutilizar el algoritmo a largo plazo, esta fase es obligatoria
- Derivación de ofuscación Issue #65 (U–AV §4): JSVMP (AD) →
E-js-vmp; CFF + matriz de cadenas (AE) →E-js-deobf; anti-depuración DevTools/debugger (AF) →E-js-anti-debug. Tabla completa en../reverse-engineering/references/nonpe-format-cookbook.md; detalles de AST aún enreferences/ast-deobfuscation.md
Requisitos de Ejecución
- Todos los pasos importantes deben registrarse en el artefacto de la tarea local
- Si no se puede explicar por qué se invoca una herramienta, no invocarla
- Priorizar el uso de las capacidades MCP existentes de
js-reverse_*o jshookmcp para obtener evidencia directamente, no escribir scripts reinventando la rueda - En caso de fallo, recurrir a
references/fallbacks.md - La salida debe seguir
references/output-contract.md
Referencias Obligatorias
- Punto de entrada de automatización:
references/automation-entry.md - Valores predeterminados de herramientas:
references/tool-defaults.md - Plantilla de entrada de tarea:
references/task-input-template.md - Orquestación de tareas específica de MCP:
references/mcp-task-template.md - Artefactos de tarea:
references/task-artifacts.md - Reconstrucción local:
references/local-rebuild.md - Parcheo de entorno:
references/env-patching.md - Reconstrucción con Node:
references/node-env-rebuild.md - Instrumentación:
references/instrumentation.md - Desofuscación AST:
references/ast-deobfuscation.md - Recetario de ofuscación no PE/JS U–AV:
../reverse-engineering/references/nonpe-format-cookbook.md(AD/AE/AF) - Recurrir:
references/fallbacks.md - Contrato de salida:
references/output-contract.md
Contexto de Enrutamiento
Entrada ascendente: skills/SKILL.md (controlador general), routing.md
Alternativas ascendentes:
- Las herramientas de navegador de anything-analyzer MCP (puerto 23816) se pueden usar como alternativa o complemento
- jshookmcp se puede usar como una superficie de ejecución más potente para navegador/CDP/Hook/Red/SourceMap/AST
reverse-engineering/SKILL.md(si el objetivo no es JS frontend)
Salida descendente:
- Si necesita parcheo de entorno →
references/env-patching.md - Si necesita reconstrucción local →
references/local-rebuild.md/references/node-env-rebuild.md - Si necesita desofuscación →
references/ast-deobfuscation.md - Si no funciona, recurrir →
references/fallbacks.md
Módulos relacionados del mismo nivel: anything-analyzer MCP (sus capacidades de automatización del navegador y captura HTTP pueden complementar)
Autoarranque Bajo Demanda (On-Demand Bootstrap)
Las capacidades MCP de las que depende esta skill se pueden instalar a través del sistema de autoarranque unificado; el registro del cliente MCP debe seleccionar explícitamente el objetivo; por defecto no se escribirá ninguna configuración global del cliente.
Límites de Capacidad de Automatización
| Capacidad | Registrable automáticamente | Método | Descripción |
|---|---|---|---|
| jshookmcp | ✓ | npm-mcp (inicio con npx) | Registrarse después de seleccionar explícitamente Claude / Codex / Ambos |
| anything-analyzer | ✓ | local-http-mcp | Puede iniciar el servicio automáticamente; el registro del cliente debe seleccionarse explícitamente |
| Node.js | ✓ | Instalación con winget | Dependencia de tiempo de ejecución |
Método de Autoarranque
# Instalar y registrar jshookmcp; Codex se puede reemplazar por Claude o Both
powershell -File "<skill-root>\scripts\bootstrap-reverse.ps1" -Capability @('jshookmcp') -McpHostTarget Codex
# Registrar e iniciar anything-analyzer
powershell -File "<skill-root>\scripts\bootstrap-reverse.ps1" -Capability @('anything-analyzer') -StartServices -McpHostTarget Codex
Notas
- Después de registrar
jshookmcp, aún es necesario habilitar ese servidor MCP en el cliente de IA para poder invocarlo - Si no se pasa
-McpHostTarget, solo se instala/prepara la capacidad y se devuelve "registration-required", sin modificar la configuración de Claude o Codex anything-analyzernecesita pnpm y el código fuente del proyecto; bootstrap se encargará de clonar e instalar dependencias automáticamente- Si Node.js no está instalado, bootstrap primero lo instalará (Node.js 22) a través de winget
## Autocomprobación de Finalización de Tarea (DEBE pasar antes de afirmar que se ha completado)
- ¿He ejecutado cada paso del flujo de trabajo (y no solo lo he leído)?
- ¿He utilizado rutas de herramientas reales basándome en
tool-index? - ¿He producido evidencia reproducible (comandos/scripts/capturas de pantalla/informes)?
- ¿He completado y registrado los elementos de la lista de verificación requeridos por las REGLAS?