JS Reverse Ops
Usa esta habilidad como un flujo de trabajo estructurado de ingeniería inversa, no como una sesión de depuración ad-hoc.
Comienza aquí
AHORA: clasifica la solicitud (recuperación de firma, desofuscación offline, trazado en tiempo de ejecución, reconstrucción de entorno, ...) y carga solo los archivos referenciados para ese tipo de tarea.AHORA: si el trabajo implica ejecutar JS del navegador localmente, lee primeroreferences/env-rebuild-recipes.md— 10 tarjetas de recetas (clases con máscara nativa, sondas de etiquetas de clase, sin built-ins de host, temporizadores reales, proxy en línea, oráculos de calibración) que previenen los errores de sandbox más costosos.AHORA: si hay dudas sobre dependencias o herramientas, siguereferences/toolchain-bootstrap.mdantes de escribir sondas.SIGUIENTE: si un flujo reconstruido "casi funciona" (primer token válido, fallos posteriores, 200-pero-respuestas-incorrectas, divergencia de clave inexplicada), deja de sondear y leereferences/misdiagnosis-patterns.md.ACTÚA: ingresa en la etapa correspondiente del Flujo de Trabajo Principal y ejecuta — no te detengas en la confirmación.
Alcance
Esta versión pública mantiene:
- enrutamiento basado en etapas para
Localizar,Ejecutar,RecuperaryReproducir - scripts reutilizables para extracción, normalización de capturas en tiempo de ejecución, andamiaje de reproducción y generación de artefactos
- referencias, reglas y plantillas genéricas para ingeniería inversa de JavaScript impulsada por navegador
Esta versión pública excluye intencionalmente:
- bibliotecas de casos privados o específicos de sitios
- accesorios de prueba capturados y corpus de validación
- objetivos de referencia concretos, credenciales y notas de reproducción vinculadas a sitios nombrados
Flujo de Trabajo Principal
Comienza desde el contexto más pequeño y confiable:
- objetivo desconocido: ejecuta
node scripts/js_reverse_ops.js <target-url-or-file> [--json] - notas existentes, registros de hooks o resúmenes de fallos: ejecuta
node scripts/map_case_to_pattern.js <notes.md>y pasa--notes <notes.md>ascripts/js_reverse_ops.js - ejecución de manual práctico: ejecuta
node scripts/run_playbook.js <target> --notes <notes.md> --out runs/currentpara emitir un libro de ruta, plan de ruta, artefactos de arranque/reclamación/procedencia/riesgo/reproducción y andamiaje de hook - siguiente comando del operador: ejecuta
node scripts/recommend_next_action.js runs/current --jsoncuando exista un directorio de ejecución pero los bloqueadores de tiempo de ejecución, reproducción o preparación hagan que el siguiente paso no esté claro - objetivo JS o HTML local: ejecuta
scripts/triage_js.sh <path>y luego el extractor más pequeño que coincida con la familia del objetivo - objetivo respaldado por navegador: verifica el estado del navegador y del puente antes de recopilar evidencia en tiempo de ejecución
- síntomas de anti-análisis: ejecuta
node scripts/select_anti_detection_profile.js --symptoms "<symptoms>"antes de cambiar la estrategia de hook o navegador; la selección de perfil solo cambia la estrategia de observación y aún debe ser seguida por verificación de tiempo de ejecución/reproducción - control de calidad público: ejecuta
node scripts/run_public_benchmarks.jsantes de publicar o después de cambiar el enrutador, la memoria de patrones, los ejemplos o los manuales - auditoría de riesgo de publicación pública: ejecuta
node scripts/explain_public_release_risk.js --json --strictpara explicar el riesgo de archivos rastreados, secretos, rutas, capturas y artefactos generados antes de hacer push - resumen de capacidad pública: ejecuta
node scripts/generate_capability_scorecard.jsal comparar esta habilidad con otros paquetes de ingeniería inversa - resumen de brecha de mercado: ejecuta
node scripts/generate_market_gap_scorecard.jsal decidir cómo mejorar esta habilidad frente a habilidades avanzadas de ingeniería inversa y cadenas de herramientas MCP - matriz de regresión externa: ejecuta
node scripts/compare_external_skill_matrix.js --jsonpara comparar esta habilidad con MCP de navegador, descompilador estático, JS inverso agéntico y perfiles de RE entre dominios - planificación de prueba de humo MCP de navegador: ejecuta
node scripts/plan_browser_mcp_smoke.js --server-family chrome_devtools_mcp --jsonantes de ejecutar comprobaciones de humo específicas del adaptador - verificación de prueba de humo MCP de navegador: ejecuta
node scripts/verify_browser_mcp_smoke_record.js --record <mcp-execution.json> --jsonantes de reclamar observaciones de humo del adaptador - bucle de entrega MCP de navegador: ejecuta
node scripts/run_mcp_delivery_loop.js <target> --record <mcp-execution.json> --out runs/current --jsonpara andamiar, verificar, promover, validar y evaluar la preparación en un solo paso - diagnóstico de fallo de reproducción: ejecuta
node scripts/diagnose_replay_failure.js --run-dir runs/current --jsono pasa--replay-record <record.json>antes de cambiar el código del firmante - generación de cliente de reproducción: ejecuta
node scripts/generate_replay_delivery_client.js --record <accepted-replay.json> --out runs/current/replay-client --jsonpara producir clientes de reproducción Node y Python sanitizados - validación de cliente de reproducción: ejecuta
node scripts/validate_replay_delivery_client.js runs/current/replay-client --jsonantes de tratar los clientes generados como artefactos de entrega - puerta de verdad estática: ejecuta
node scripts/assess_static_recovery_truth.js --original <input.js> --recovered <output.js> --jsonantes de promover la salida estática legible - planificación estática con mapa de origen primero: si un bundle tiene
sourceMappingURL,sourceURL, mapas en línea o notasX-SourceMap, ejecutanode scripts/plan_static_toolchain.js <bundle.js> --jsonantes de la limpieza AST - validación de entrega entre dominios: ejecuta
node scripts/validate_domain_handoff_record.js --record <handoff-record.json> --json --strictantes de fusionar hallazgos de WASM, paquetes, móviles, nativos o depuradores en la evidencia JS - envoltorio CLI: usa
node scripts/jsro.js <command>o el bin del paquetejsropara los comandos route, run, validate, next, benchmark, scorecard, marketgap, releaserisk, externalmatrix, mcpsmoke, mcpsmokeverify, mcploop, replaydiagnose, replayclient, replayclientcheck, statictruth, handoff, handoffcheck, install y publish - instalación o lanzamiento con un solo comando: usa
bash scripts/install_local.shybash scripts/publish_release.sh
- respuesta aceptada más valores confusos visibles en el navegador: inspecciona la lógica de renderizado y supresión del lado de la página antes de escalar a la recuperación del firmante, y usa
playbooks/accepted-response-hidden-dom.md - respuesta aceptada más entidades de fuente o glifo incrustadas en la página local: extrae la fuente de la respuesta actual, resuelve el mapa de glifos en el ámbito de la página y usa
playbooks/embedded-runtime-font-mapping.md - la reproducción aún falla incluso después de recuperar un resumen aceptado: inspecciona el orden de escritura de cookies en el momento del arranque, los recolectores de resúmenes y el ensamblaje de cookies envueltas, luego usa
playbooks/bootstrap-digest-ladder.md - un endpoint sigue devolviendo JavaScript primero y solo devuelve arreglos después de que el script se ejecuta y se reproduce contra la misma ruta: trátalo como una cadena de calentamiento iterativa en lugar de buscar un segundo endpoint oculto, y usa
playbooks/iterative-script-warmup-same-endpoint.md - el firmante depende de una hora emitida por el servidor y un ayudante wasm o módulo: congela la fuente de tiempo, demuestra la forma exacta de entrada del firmante y usa
playbooks/server-time-gated-wasm-signer.md - el nombre del ayudante de resumen parece estándar, pero la salida del navegador diverge tanto de la biblioteca estándar como del ayudante local sin procesar: aísla primero la superficie de parche de tiempo de ejecución más pequeña y usa
playbooks/patched-runtime-digest-branch.md - un bundle grande oculta un pequeño ayudante de tiempo de ejecución que realmente necesitas para la reproducción: extrae ese ayudante primero en lugar de emular toda la página y usa
playbooks/runtime-bundle-signer-extraction.md - los ayudantes de token global están ausentes o son engañosos, pero
XMLHttpRequest.openreescribe la URL protegida con el campo del firmante: trata la URL reescrita como la salida del firmante, preserva el orden del script y el estado de tiempo de ejecución, y usaplaybooks/xhr-open-url-rewrite-runtime-replay.md - el contrato de solicitud visible es estable pero diferentes clientes HTTP divergen: escala a través de una escalera de transporte antes de inventar más estado del firmante, y usa
playbooks/transport-profile-ladder.md - la respuesta de verificación parece ruidosa o pesimista mientras que las solicitudes de datos aún tienen éxito: trata el endpoint de datos como el oráculo de aceptación y usa
playbooks/lenient-verify-data-gate.md - la página expone una solicitud simple o un campo ayudante, pero las páginas posteriores fallan con una puerta con forma de token: demuestra si la solicitud visible es un señuelo antes de ampliar a la recuperación completa de VM, y usa
playbooks/decoy-page-request-hidden-token-gate.md - una imagen de desafío es una cuadrícula fija pequeña con un glifo o símbolo por celda: resuelve primero la ruta de asignación de cuadrícula y usa
playbooks/grid-challenge-template-matching.md - el desafío de múltiples etapas necesita una recarga nueva, una prueba de firmante sembrado y luego usa un valor de etapa aceptado como la siguiente clave: valida la primera solicitud de línea base antes de resolver descifrados posteriores y usa
playbooks/fresh-reload-seeded-signer-step-key-ladder.md - una ruta de reproducción funciona para la ronda uno, pero las rondas posteriores solo recuperan la paridad después de la reproducción de la ronda anterior: preserva la escalera de ronda explícita de la misma página y usa
playbooks/same-page-prior-round-signer-replay.md - el HTML de escritorio es inestable pero un perfil de solicitud móvil o de aplicación aterriza en una página de shell con hidratación JSON posterior: recupera primero el envoltorio de solicitud de shell y el mapa de rutas, luego usa
playbooks/mobile-shell-api-pivot.md - Para bibliotecas criptográficas empaquetadas cuyos primitivos están controlados por el entorno (ramas de navegador versus sandbox, alfabetos base64 modificados o constantes hash, tokens de sandbox rechazados mientras que los tokens de navegador pasan), enruta a
playbooks/env-gated-crypto-differential.md. - Para firmantes de VM con estado cuyos tokens de URL capturados se reproducen exitosamente, enruta a
playbooks/browser-assisted-token-replay.mdantes de intentar la recuperación semántica de VM. - Para firmantes de VM personalizados que necesitan un oráculo local sin navegador, enruta a
playbooks/jsdom-native-vm-differential.mdy compara flujos de instrucciones y constantes con una verdad de referencia de navegador instrumentado. - Para tokens con TTL corto, enruta a
playbooks/short-ttl-inline-proxy.md: envía la solicitud real desde dentro del arnés de cómputo de tokens a través de un interceptor de recursos basado en Promesa.
- código empaquetado o similar a VM: preserva el artefacto original, recupera la estructura de forma incremental y etiqueta la semántica verificada
- entrega de reproducción: exporta un paquete de artefactos estable antes de escribir código de entrega en Node o Python
Línea Base de Mejores Herramientas
Usa scripts integrados para enrutamiento, evidencia, artefactos y repetibilidad. Usa herramientas especializadas solo para el trabajo específico para el que son buenas:
- mapas de origen o módulos originales primero, antes de cualquier paso de desofuscación
webcrackpara paquetes comunes de obfuscator.io, similares a webpack, arreglos de cadenas y primer paso de desempaquetadowakarupara salida minificada moderna donde la normalización de sintaxis y la legibilidad importan más que la verdad de tiempo de ejecuciónast-grep, Babel orecastpara pequeñas transformaciones estructurales dirigidashumanifyu otro renombrador de LLM solo después de sanitizar el código y solo cuando la recuperación de identificadores valga la pena enviar fragmentos fuera del espacio de trabajo
No permitas que desofuscadores externos reemplacen la evidencia. Cada campo recuperado, cookie, entrada de firmante o ayudante de reproducción aún necesita una observación verificada del navegador o un artefacto de reproducción local.
Para una comparación más amplia con habilidades y herramientas de ingeniería inversa adyacentes, usa references/external-skill-comparison-2026-06-04.md.
Puerta de Seguridad de Publicación
Antes de publicar esta habilidad pública, ejecuta bash scripts/check_public_release.sh desde la raíz del repositorio público. El paquete público no debe contener:
- notas de sitios privados, capturas en vivo, credenciales, cookies, tokens o rutas específicas de clientes
- directorios
tmp/, caché,__pycache__,.pyco resultados de referencia locales generados rastreados por git - rutas de usuario local absolutas, tokens de portador, tokens de GitHub, claves en la nube, JWT o claves privadas
- fragmentos no sanitizados que identifiquen un objetivo en vivo más allá de ejemplos genéricos
Mantén corpus privados y paquetes de validación local en el espacio de trabajo privado. Publica solo manuales genéricos, scripts, plantillas y ejemplos sanitizados.
Referencias Principales
references/env-rebuild-recipes.mdreferences/misdiagnosis-patterns.mdreferences/toolchain-bootstrap.mdreferences/standard-workflow-cookbook.mdreferences/stage-gates.md— condiciones de entrada/salida estrictas, cajas de tiempo, cadena de respaldoreferences/decision-handoff.md— protocolo de entrega solo de diferencias entre etapas/sesionesreferences/task-types.mdexamples/case-walkthrough-combinatorial-gates.md— narrativa sanitizada: puertas de entorno combinatorias + oráculos de calibraciónexamples/case-walkthrough-timer-selfcheck-and-fake-200s.md— narrativa sanitizada: autocomprobaciones de temporizador, claves derivadas del tiempo, laberinto de datos falsos 200
Nota: el generador de andamiaje de arnés literal referenciado en la edición completa se distribuye solo con el espacio de trabajo privado; este paquete público documenta las reglas equivalentes en references/env-rebuild-recipes.md.
references/stages/locate.mdreferences/stages/runtime.mdreferences/stages/recover.mdreferences/stages/replay.mdreferences/rules/evidence-rules.mdreferences/rules/runtime-first.mdreferences/rules/routing-rules.mdreferences/rules/replay-rules.md
Nota de Publicación
Esta variante pública está destinada a compartirse como un paquete de habilidad reutilizable. Mantén accesorios privados, capturas en vivo y notas de clientes o sitios específicos en un espacio de trabajo o repositorio privado separado.