Communitygithub.com

DQmyth/js-reverse-ops

Habilidad profesional de ingeniería inversa en JavaScript con flujos de trabajo basados en evidencia, arneses de sandbox literales, 19 manuales probados en batalla, 136 scripts y puntos de referencia públicos.

¿Qué es js-reverse-ops?

Esta habilidad proporciona un flujo de trabajo estructurado de ingeniería inversa para JavaScript, diseñado para entornos de producción. En lugar de sesiones de depuración ad-hoc, guía al agente (Claude Code, Cursor, etc.) a través de etapas claras: Localizar, Ejecutar en tiempo de ejecución, Recuperar y Reproducir. Su principal ventaja es la prevención de errores costosos en sandbox, ofreciendo recetas de reconstrucción de entorno, detección de patrones de diagnóstico erróneo y un conjunto de 19 manuales para escenarios comunes como firmas con tiempo de servidor, códigos verificados por WASM o desafíos de cuadrícula. La habilidad incluye 136 scripts Node.js para enrutamiento de solicitudes, extracción de artefactos, normalización de capturas y generación de clientes de reproducción en Node y Python. Está diseñada para plataformas que ejecutan JavaScript localmente (como navegadores instrumentados) y soporta la integración con MCP para fumadores de navegador. El resumen de IA debe dejar claro que esta no es una herramienta de depuración genérica, sino un sistema completo de orquestación de ingeniería inversa con puntos de control de calidad, evaluación de riesgos de publicación y matrices de comparación externa.

Compatible con~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add DQmyth/js-reverse-ops

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

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í

  1. 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.
  2. AHORA: si el trabajo implica ejecutar JS del navegador localmente, lee primero references/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.
  3. AHORA: si hay dudas sobre dependencias o herramientas, sigue references/toolchain-bootstrap.md antes de escribir sondas.
  4. 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 lee references/misdiagnosis-patterns.md.
  5. 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, Recuperar y Reproducir
  • 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> a scripts/js_reverse_ops.js
  • ejecución de manual práctico: ejecuta node scripts/run_playbook.js <target> --notes <notes.md> --out runs/current para 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 --json cuando 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.js antes 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 --strict para 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.js al comparar esta habilidad con otros paquetes de ingeniería inversa
  • resumen de brecha de mercado: ejecuta node scripts/generate_market_gap_scorecard.js al 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 --json para 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 --json antes 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> --json antes 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 --json para 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 --json o 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 --json para 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 --json antes 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> --json antes 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 notas X-SourceMap, ejecuta node scripts/plan_static_toolchain.js <bundle.js> --json antes de la limpieza AST
  • validación de entrega entre dominios: ejecuta node scripts/validate_domain_handoff_record.js --record <handoff-record.json> --json --strict antes 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 paquete jsro para 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.sh y bash 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.open reescribe 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 usa playbooks/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.md antes 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.md y 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
  • webcrack para paquetes comunes de obfuscator.io, similares a webpack, arreglos de cadenas y primer paso de desempaquetado
  • wakaru para salida minificada moderna donde la normalización de sintaxis y la legibilidad importan más que la verdad de tiempo de ejecución
  • ast-grep, Babel o recast para pequeñas transformaciones estructurales dirigidas
  • humanify u 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__, .pyc o 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.md
  • references/misdiagnosis-patterns.md
  • references/toolchain-bootstrap.md
  • references/standard-workflow-cookbook.md
  • references/stage-gates.md — condiciones de entrada/salida estrictas, cajas de tiempo, cadena de respaldo
  • references/decision-handoff.md — protocolo de entrega solo de diferencias entre etapas/sesiones
  • references/task-types.md
  • examples/case-walkthrough-combinatorial-gates.md — narrativa sanitizada: puertas de entorno combinatorias + oráculos de calibración
  • examples/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.md
  • references/stages/runtime.md
  • references/stages/recover.md
  • references/stages/replay.md
  • references/rules/evidence-rules.md
  • references/rules/runtime-first.md
  • references/rules/routing-rules.md
  • references/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.

Skills relacionados