Communitygithub.com

js-reverse

Usado ao trabalhar com js-reverse-mcp para engenharia reversa de JavaScript frontend, adequado para localização de cadeias de assinatura, observação de páginas, amostragem em tempo de execução, reprodução local de ambiente e saída baseada em evidências. Prioriza ferramentas js-reverse_* disponíveis no ambiente atual; quando for necessária maior capacidade de navegador/CDP/Hook, integra-se com jshookmcp.

O que é js-reverse?

Este skill (js-reverse) define um fluxo de trabalho padronizado para realizar engenharia reversa de JavaScript frontend utilizando o ecossistema js-reverse-mcp. Ele é focado em tarefas como localizar parâmetros de assinatura, campos de risco, cadeias de solicitação e pontos de acionamento de XHR/Fetch/WebSocket, além de permitir a coleta de evidências em tempo de execução para reprodução local em Node.js. O fluxo de trabalho é dividido em cinco fases principais: Observar (mapear requisições e scripts), Capturar (interceptar chamadas com mínimo impacto), Reconstruir (organizar evidências para reprodução local), Aplicar Patches (corrigir ambiente gradualmente) e Aprofundar (desofuscar e refinar lógica). O skill prioriza ferramentas com prefixo `js-reverse_*` do ambiente, mas também se integra com o `jshookmcp` para capacidades avançadas de navegador, CDP e hooks. Ele é adequado para agentes como Claude Code, Codex ou Cursor, exigindo que os MCPs estejam devidamente registrados e habilitados. O skill também define regras claras de autoavaliação, bootstrap e referências para fallback, garantindo que o processo seja orientado a evidências e minimamente invasivo.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Especificação de Trabalho de Engenharia Reversa JS Frontend com MCP

AÇÃO REQUERIDA (executar imediatamente após a leitura)

  1. AGORA: Leia ../field-journal/precedent-reverse.md — confirme que a operação deste skill é autorizada e rotineira
  2. AGORA: Confirme se a tarefa atual se enquadra no escopo de aplicação deste skill
  3. PRÓXIMO: Leia ../tool-index.md, verifique a disponibilidade das ferramentas e os caminhos reais
  4. PRÓXIMO: Se faltarem ferramentas, chame o bootstrap; não adivinhe caminhos
  5. AGIR: Entre na primeira etapa do "fluxo de trabalho" e execute, não pare no estado de confirmação

Escopo de Aplicação

Use este skill prioritariamente quando a tarefa se enquadrar nos seguintes cenários:

  • Localizar assinaturas de API, parâmetros criptografados, campos de risco
  • Observar a cadeia de requisições da página e as origens dos scripts
  • Capturar argumentos de entrada e valores de retorno de funções em tempo de execução
  • Rastrear o ponto de acionamento de uma requisição XHR/Fetch/WebSocket
  • Trazer evidências da página para o Node e reproduzir localmente com ambiente simulado

Se o alvo for binário, APK, PE, ELF, DLL ou SO, use ida-reverse, radare2 ou reverse-engineering.

Mapeamento Padrão de Ferramentas do Ambiente Atual

Este skill não assume a existência de nomes de ferramentas simples; por padrão, ele se vincula às ferramentas js-reverse_* disponíveis no ambiente do cliente atual.

Se a tarefa atual mencionar explicitamente jshookmcp, JS hook, CDP, breakpoints de navegador, interceptação de rede, SourceMap ou desofuscação com AST, ainda assim use este skill; apenas alterne o plano MCP subjacente para jshookmcp, sem tratá-lo como um novo ponto de entrada geral.

Pré-condição: jshookmcp não é um comando local; é um servidor MCP que deve ser baixado, registrado e ativado explicitamente. Somente quando conectado e ativado na configuração MCP do cliente escolhido (Claude, Codex, etc.) as ferramentas relacionadas estarão realmente disponíveis.

Mapeamento comum:

  • 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

Se o prefixo das ferramentas mudar no futuro, atualize esta seção primeiro; não faça suposições temporárias durante a execução.

Posicionamento do jshookmcp

  • Papel: camada de execução aprimorada do js-reverse, não um controlador independente
  • Adequado para: automação de navegador, depuração CDP, hooks JS, interceptação de rede, reconstrução de SourceMap, compreensão auxiliada por AST
  • Pré-condição de chamada: baixe @jshookmcp/jshook e registre-o na configuração do cliente MCP, em seguida garanta que o servidor esteja ativado
  • Entrada sugerida: ainda siga Observar → Capturar → Reconstruir, apenas nas fases Observar/Capturar priorize as capacidades de navegador e hook do jshookmcp
  • Relação com anything-analyzer: ambos podem fazer coleta de evidências no navegador/rede; anything-analyzer é mais voltado para captura de pacotes e análise HTTP, enquanto jshookmcp foca mais em runtime JS, CDP, hooks e compreensão de código-fonte

Princípios Fundamentais

  • Observar-primeiro
  • Hook-preferido
  • Breakpoint-último
  • Reconstrução-orientada
  • Evidência-primeiro

Primeiro observe a página, depois faça a amostragem mínima, depois reconstrua o ambiente localmente; não pule a coleta de evidências e adivinhe o ambiente.

Fluxo de Trabalho em Cinco Estágios

1. Observar

Objetivo: primeiro confirme a requisição alvo, scripts relacionados e funções candidatas; não adivinhe o ambiente.

Ações padrão:

  • Use js-reverse_new_page ou js-reverse_navigate_page para abrir a página alvo
  • Use js-reverse_list_network_requests para encontrar a requisição alvo
  • Use js-reverse_get_request_initiator para rastrear a origem da chamada
  • Use js-reverse_list_scripts, js-reverse_search_in_sources para restringir o escopo dos scripts

Saída obrigatória:

  • URL da requisição alvo ou sua característica
  • Pistas do initiator
  • URL de script suspeito
  • Registro inicial da tarefa

2. Capturar

Objetivo: faça uma amostragem minimamente invasiva da requisição alvo, obtendo exemplos de parâmetros, ordem de chamada e evidências de tempo de execução.

Regras:

  • Priorize js-reverse_break_on_xhr
  • Priorize js-reverse_evaluate_script para observação leve em tempo de execução
  • Ao atingir o ponto de interrupção, primeiro veja js-reverse_get_paused_info
  • Se necessário, use js-reverse_set_breakpoint_on_text

3. Reconstruir

Objetivo: organize as evidências da página em materiais de reprodução Node.js iteráveis localmente.

Regras:

  • A reconstrução local deve ser baseada em evidências de observação da página
  • Não é permitido adivinhar window/document/navigator/crypto/storage sem base
  • Registre apenas uma decisão de patch causal mínima por vez

4. Aplicar Patches

Objetivo: corrija o ambiente com base em erros e no primeiro desvio, até que o script local execute de forma estável e produza os parâmetros alvo.

Regras:

  • Veja primeiro o que está faltando, depois corrija
  • Faça apenas uma decisão de patch mínima por vez
  • Teste imediatamente após cada patch
  • Registre cada patch no registro da tarefa

5. Aprofundar

Objetivo: após a execução local bem-sucedida, faça desofuscação, reconstrução de fluxo de controle e purificação da lógica de negócios.

Regras:

  • Se a tarefa atual for apenas gerar uma assinatura, este estágio pode ser reduzido
  • Se o algoritmo precisar ser reutilizado a longo prazo, este estágio é obrigatório
  • Bypass de ofuscação Issue #65 (U–AV §4): JSVMP (AD) → E-js-vmp; CFF + array de strings (AE) → E-js-deobf; anti-debug DevTools/debugger (AF) → E-js-anti-debug. Tabela completa em ../reverse-engineering/references/nonpe-format-cookbook.md; detalhes de AST ainda em references/ast-deobfuscation.md

Requisitos de Execução

  • Todos os passos importantes devem ser registrados em um artefato de tarefa local
  • Se você não puder explicar por que está chamando uma ferramenta, não a chame
  • Priorize o uso das capacidades MCP existentes de js-reverse_* ou jshookmcp para coleta direta de evidências, não recrie capacidades escrevendo scripts do zero
  • Em caso de falha, recorra a references/fallbacks.md
  • A saída deve seguir references/output-contract.md

Referências Obrigatórias

  • Entrada de automação: references/automation-entry.md
  • Valores padrão de parâmetros: references/tool-defaults.md
  • Modelo de entrada de tarefa: references/task-input-template.md
  • Orquestração de tarefas específica para MCP: references/mcp-task-template.md
  • Artefatos de tarefa: references/task-artifacts.md
  • Reprodução local: references/local-rebuild.md
  • Correção de ambiente: references/env-patching.md
  • Reprodução Node: references/node-env-rebuild.md
  • Instrumentação: references/instrumentation.md
  • Desofuscação AST: references/ast-deobfuscation.md
  • Receitas de ofuscação não-PE/JS U–AV: ../reverse-engineering/references/nonpe-format-cookbook.md (AD/AE/AF)
  • Fallback: references/fallbacks.md
  • Contrato de saída: references/output-contract.md

Contexto de Roteamento

Entrada upstream: skills/SKILL.md (controle geral), routing.md Alternativas upstream:

  • Ferramentas de navegador do anything-analyzer MCP (porta 23816) podem ser usadas como alternativa ou complemento
  • jshookmcp pode ser usado como uma camada de execução mais forte para navegador/CDP/Hook/Network/SourceMap/AST
  • reverse-engineering/SKILL.md (se o alvo não for JS frontend)

Saída downstream:

  • Se precisar corrigir ambiente → references/env-patching.md
  • Se precisar reprodução local → references/local-rebuild.md / references/node-env-rebuild.md
  • Se precisar desofuscação → references/ast-deobfuscation.md
  • Se não funcionar, recorra a → references/fallbacks.md

Módulos relacionados no mesmo nível: anything-analyzer MCP (capacidades de automação de navegador e captura HTTP podem se complementar)


Bootstrap Sob Demanda (On-Demand Bootstrap)

As capacidades MCP das quais este skill depende podem ser instaladas através de um sistema de bootstrap unificado; o registro do cliente MCP deve selecionar explicitamente o alvo, por padrão nenhuma configuração global do cliente será escrita.

Limites de Capacidade de Automação

CapacidadePode ser registrada automaticamenteMétodoDescrição
jshookmcp✓npm-mcp (iniciado via npx)Registra após seleção explícita de Claude / Codex / Ambos
anything-analyzer✓local-http-mcpPode iniciar o serviço automaticamente; registro do cliente deve selecionar explicitamente
Node.js✓instalação via wingetDependência de execução

Método de Bootstrap

# Instalar e registrar jshookmcp; Codex pode ser substituído por Claude ou Ambos
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

Observações

  • Após o registro, jshookmcp ainda precisa ser ativado no cliente de IA para que suas ferramentas possam ser chamadas
  • Se -McpHostTarget não for passado, apenas instala/prepara a capacidade e retorna 'registration-required', sem modificar a configuração do Claude ou Codex
  • anything-analyzer requer pnpm e o código-fonte do projeto; o bootstrap clonará e instalará as dependências automaticamente
  • Se o Node.js não estiver instalado, o bootstrap primeiro instalará o Node.js 22 via winget

## Autoavaliação de Conclusão da Tarefa (MUST passar antes de declarar conclusão)

  • Eu executei cada passo do fluxo de trabalho (e não apenas li)?
  • Eu usei caminhos reais de ferramentas com base no tool-index?
  • Eu produzi evidências reproduzíveis (comandos/scripts/capturas de tela/relatórios)?
  • Eu completei e registrei os itens da Checklist exigidos pelas REGRAS?

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.

Habilidades Relacionadas