Communitygithub.com

js-reverse

Se utiliza al hacer ingeniería inversa de JavaScript frontend con js-reverse-mcp, adecuado para localización de firmas de enlace, observación de páginas, muestreo en tiempo de ejecución, reproducción local de entorno y salida de evidencia. Se adapta prioritariamente a las herramientas js-reverse_* del entorno actual; cuando se necesite una mayor capacidad de navegador/CDP/Hook, se integra con jshookmcp.

¿Qué es js-reverse?

Esta habilidad define un flujo de trabajo completo para la ingeniería inversa de JavaScript en el frontend, utilizando el sistema MCP (Model Context Protocol) para interactuar con herramientas como js-reverse_* y jshookmcp. Está diseñada para localizar firmas de API, parámetros de cifrado, campos de control de riesgos y analizar solicitudes de red, todo ello mediante un enfoque estructurado de cinco fases: Observar, Capturar, Reconstruir, Parchear y Profundizar. Prioriza la observación basada en evidencia y la captura mínimamente invasiva, evitando adivinanzas sobre el entorno. Soporta plataformas como Claude, Codex y otros clientes compatibles con MCP, y utiliza herramientas como js-reverse_list_scripts, js-reverse_break_on_xhr y js-reverse_evaluate_script. Además, se integra con jshookmcp para capacidades avanzadas de navegador, CDP y hooking. La habilidad es útil para desarrolladores e investigadores que necesitan rastrear el origen de las solicitudes, entender la lógica de cifrado del lado del cliente y reproducir entornos localmente con Node.js.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/js-reverse

Preguntar en tu IA favorita

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

Documentación

MCP Frontend JS Ingeniería Inversa - Normas de Trabajo

ACCIÓN REQUERIDA (ejecutar inmediatamente después de leer)

  1. AHORA: Leer ../field-journal/precedent-reverse.md — confirmar que la operación de esta skill está autorizada como operación habitual
  2. AHORA: Confirmar si la tarea actual se encuentra dentro del alcance de esta skill
  3. SIGUIENTE: Leer ../tool-index.md, verificar la disponibilidad de herramientas y las rutas reales
  4. SIGUIENTE: Si faltan herramientas, invocar bootstrap, no adivinar rutas
  5. ACTUAR: 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_scripts
  • get_script_source -> js-reverse_get_script_source
  • search_in_sources -> js-reverse_search_in_sources
  • break_on_xhr -> js-reverse_break_on_xhr
  • evaluate_script -> js-reverse_evaluate_script
  • get_paused_info -> js-reverse_get_paused_info
  • set_breakpoint_on_text -> js-reverse_set_breakpoint_on_text
  • list_network_requests -> js-reverse_list_network_requests
  • get_request_initiator -> js-reverse_get_request_initiator
  • get_websocket_messages -> js-reverse_get_websocket_messages
  • take_screenshot -> js-reverse_take_screenshot
  • new_page -> js-reverse_new_page
  • navigate_page -> js-reverse_navigate_page
  • select_page -> js-reverse_select_page
  • select_frame -> js-reverse_select_frame
  • pause/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/jshook y 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 fase Observar/Capturar se 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-primero
  • Hook-preferido
  • Punto-de-interrupción-último
  • Orientado-a-reconstrucción
  • Evidencia-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_page o js-reverse_navigate_page para abrir la página objetivo
  • Usar js-reverse_list_network_requests para encontrar la solicitud objetivo
  • Usar js-reverse_get_request_initiator para rastrear el origen de la llamada
  • Usar js-reverse_list_scripts, js-reverse_search_in_sources para 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_script para 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/storage de 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 en references/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

CapacidadRegistrable automáticamenteMétodoDescripción
jshookmcp✓npm-mcp (inicio con npx)Registrarse después de seleccionar explícitamente Claude / Codex / Ambos
anything-analyzer✓local-http-mcpPuede iniciar el servicio automáticamente; el registro del cliente debe seleccionarse explícitamente
Node.js✓Instalación con wingetDependencia 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-analyzer necesita 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?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

Skills relacionados