Skip to content
Back to skills

Webapp Js Reverse

ASecurity

Front-end JavaScript reverse engineering for cryptographic logic and signature extraction.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
securityjavascriptgojavashellnodedebuggingapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 17 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add bitbytelabio/arsenal --skill webapp-js-reverse --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Webapp Js Reverse?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Webapp Js Reverse
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bitbytelabio-webapp-js-reverse/badge)](https://www.skillsdirectory.com/skills/bitbytelabio-webapp-js-reverse)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: webapp-js-reverse
description: Front-end JavaScript reverse engineering for cryptographic logic and signature extraction.
domain: webapp
category: client-side
hide: true
license: MIT
metadata:
  manifest_entry: src/corpus/webapp-js-reverse/SKILL.md
---
# MCP Front-End JS Reverse Engineering Operation Specification

## ACTION REQUIRED (Execute immediately upon reading)

1. `NOW`: Read `skill://webapp-js-reverse/support/field-journal/precedent-reverse.md` — Confirm that operations under this skill are authorized standard procedures.
2. `NOW`: Confirm whether the current task falls within the scope of this skill.
3. `NEXT`: Verify tool availability and actual paths based on available tools.
4. `NEXT`: Invoke bootstrap when tools are missing; do not guess paths.
5. `ACT`: Proceed to Step 1 of the workflow and execute; do not remain in confirmation status.

## Scope of Application

Prioritize using this skill when the task falls into the following scenarios:

- Locating API signatures, encrypted parameters, and risk control fields
- Observing page request call chains and script sources
- Capturing function input arguments and return values at runtime
- Tracing the trigger point of a specific XHR/Fetch/WebSocket
- Bringing page evidence back to Node for local reproduction and environment emulation

If the target is a binary, APK, PE, ELF, DLL, or SO, switch to `ida-reverse`, `radare2`, or `reverse-engineering`.

## Default Tool Mapping for Current Environment

This skill does not assume the existence of bare tool names; it binds by default to the available `js-reverse_*` tools in the current client environment.

If the current task explicitly mentions `jshookmcp`, `JS hook`, `CDP`, browser breakpoints, network interception, SourceMap, or AST deobfuscation, continue using this skill; simply switch the underlying MCP interface to `jshookmcp` rather than treating it as a new overall entry point.

Prerequisite: `jshookmcp` is not a local bare CLI tool, but an MCP server that must be downloaded, explicitly registered, and enabled. The corresponding tool surface is only callable once integrated and enabled in the MCP configuration of the selected client (Claude, Codex, etc.).

Common mappings:

- `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`

If the tool name prefixes change in the future, update this section first; do not guess during execution.

### Positioning of jshookmcp

- Role: Enhanced execution surface for `js-reverse`, not an independent Master Controller
- Suitable for: Browser automation, CDP debugging, JS Hooking, network interception, SourceMap reconstruction, AST-assisted comprehension
- Call prerequisite: Download and register `@jshookmcp/jshook` into the MCP client configuration, then verify that the server is enabled
- Recommended entry point: Still follow `Observe → Capture → Rebuild`; prioritize invoking jshookmcp's browser and Hook capabilities during the `Observe/Capture` stages
- Relation to anything-analyzer: Both can perform browser/network forensics; anything-analyzer focuses more on packet capturing and HTTP analysis, while jshookmcp focuses more on the JS runtime, CDP, Hooking, and source code comprehension

## Core Principles

- `Observe-first`
- `Hook-preferred`
- `Breakpoint-last`
- `Rebuild-oriented`
- `Evidence-first`

Perform page observation first, then minimal sampling, then local environment emulation; never skip evidence collection to guess environments directly.

## Five-Stage Workflow

### 1. Observe

Goal: Identify the target request, related scripts, and candidate functions first without guessing the environment.

Default actions:

- Open the target page using `js-reverse_new_page` or `js-reverse_navigate_page`
- Locate the target request using `js-reverse_list_network_requests`
- Trace the call origin back using `js-reverse_get_request_initiator`
- Narrow down the script scope using `js-reverse_list_scripts` and `js-reverse_search_in_sources`

Mandatory deliverables:

- Target request URL or signature
- Initiator clues
- Suspicious script URLs
- Initial task log

### 2. Capture

Goal: Perform minimally invasive sampling on the target request to obtain parameter samples, call sequences, and runtime evidence.

Rules:

- Prioritize `js-reverse_break_on_xhr`
- Prioritize `js-reverse_evaluate_script` for lightweight runtime observation
- Inspect `js-reverse_get_paused_info` first upon hit
- Use `js-reverse_set_breakpoint_on_text` only when necessary

### 3. Rebuild

Goal: Organize page evidence into iterative local Node reproduction materials.

Rules:

- Local environment emulation must be grounded in page observation evidence
- Speculative emulation of `window/document/navigator/crypto/storage` without evidence is prohibited
- Record only one minimal causal patch decision at a time

### 4. Patch

Goal: Drive environment emulation via errors and first divergence until the local script stably reproduces the target parameters.

Rules:

- Identify what is missing before patching it
- Make only one minimal patch decision per iteration
- Retest immediately after each patch
- Record every patch into the task artifact

### 5. DeepDive

Goal: Perform deobfuscation, control flow reconstruction, and business logic purification only after local execution succeeds.

Rules:

- If the current task only requires signature generation, this stage can be downgraded
- If the algorithm chain needs long-term reuse, this stage is mandatory
- Issue #65 Obfuscation bypass (U–AV §4): JSVMP (AD) → `E-js-vmp`; CFF + string array (AE) → `E-js-deobf`; DevTools/debugger anti-debugging (AF) → `E-js-anti-debug`. For the full trigger table, refer to `skill://webapp-js-reverse/support/reverse-engineering/references/nonpe-format-cookbook.md`; for AST details, refer to `skill://webapp-js-reverse/references/ast-deobfuscation.md`

## Execution Requirements

- All key steps must be documented in the local task artifact
- If a tool invocation cannot be justified, do not invoke it
- Prioritize using ready-made MCP capabilities from `js-reverse_*` or jshookmcp for direct evidence gathering; do not write scripts to reinvent capabilities prematurely
- Fall back according to `skill://webapp-js-reverse/references/fallbacks.md` upon failure
- Output must conform to `skill://webapp-js-reverse/references/output-contract.md`

## Required References

- Automation Entry: `skill://webapp-js-reverse/references/automation-entry.md`
- Tool Default Values: `skill://webapp-js-reverse/references/tool-defaults.md`
- Task Input Template: `skill://webapp-js-reverse/references/task-input-template.md`
- MCP-Specific Task Orchestration: `skill://webapp-js-reverse/references/mcp-task-template.md`
- Task Artifacts: `skill://webapp-js-reverse/references/task-artifacts.md`
- Local Reproduction: `skill://webapp-js-reverse/references/local-rebuild.md`
- Environment Patching: `skill://webapp-js-reverse/references/env-patching.md`
- Node Environment Reproduction: `skill://webapp-js-reverse/references/node-env-rebuild.md`
- Instrumentation: `skill://webapp-js-reverse/references/instrumentation.md`
- AST Deobfuscation: `skill://webapp-js-reverse/references/ast-deobfuscation.md`
- Non-PE/JS Obfuscation Cookbook U–AV: `skill://webapp-js-reverse/support/reverse-engineering/references/nonpe-format-cookbook.md` (AD/AE/AF)
- Fallbacks: `skill://webapp-js-reverse/references/fallbacks.md`
- Output Contract: `skill://webapp-js-reverse/references/output-contract.md`

---

## Routing Context

**Upstream Entry**: `skill://webapp-js-reverse/support/SKILL.md` (Master Controller), `skill://webapp-js-reverse/support/routing.md`
**Upstream Alternatives**:
- The browser tools of anything-analyzer MCP (port 23816) can serve as an alternative or supplement
- jshookmcp can serve as an enhanced browser/CDP/Hook/Network/SourceMap/AST execution surface
- `arsenal skill_load re-reverse-engineering` (if the target is not front-end JS)

**Downstream Exit**:
- Needs environment patching → `skill://webapp-js-reverse/references/env-patching.md`
- Needs local reproduction → `skill://webapp-js-reverse/references/local-rebuild.md` / `skill://webapp-js-reverse/references/node-env-rebuild.md`
- Needs deobfuscation → `skill://webapp-js-reverse/references/ast-deobfuscation.md`
- Blocked / fallback required → `skill://webapp-js-reverse/references/fallbacks.md`
- Bootstrap helpers → `arsenal scripts bootstrap-reverse` and `arsenal scripts bootstrap-reverse`

**Related Sibling Modules**: anything-analyzer MCP (browser automation and HTTP capture capabilities can complement each other)

---

## On-Demand Bootstrap

The MCP capabilities required by this skill can be installed via the unified bootstrap system; MCP client registration requires explicitly specifying the target and will not modify any client global configuration by default.

### Automation Capability Boundaries

| Capability | Auto-Registerable | Method | Notes |
|------------|-------------------|--------|-------|
| jshookmcp | ✓ | npm-mcp (started via npx) | Register after explicitly selecting Claude / Codex / Both |
| anything-analyzer | ✓ | local-http-mcp | Can auto-start service; client registration requires explicit selection |
| Node.js | ✓ | winget installation | Runtime dependency |

### Bootstrap Method

```powershell
# Resolve helper from canonical resource URI: arsenal scripts bootstrap-reverse
# Copy or resolve to local workspace path before execution:
# Install and register jshookmcp; Codex can be replaced with Claude or Both
arsenal scripts bootstrap-reverse -Capability @('jshookmcp') -McpHostTarget Codex

# Register and start anything-analyzer
arsenal scripts bootstrap-reverse -Capability @('anything-analyzer') -StartServices -McpHostTarget Codex
```

### Important Notes

- After `jshookmcp` is registered, the MCP server must still be **enabled** in the AI client before it can be called
- When `-McpHostTarget` is omitted, capabilities are only installed/prepared and registration-required is returned, without modifying Claude or Codex configurations
- `anything-analyzer` requires pnpm and project source code; bootstrap will automatically clone and install dependencies
- If Node.js is not installed, bootstrap will install Node.js 22 via winget first

<br><br>## Task Completion Self-Check (MUST pass before claiming completion)

- [ ] Did I execute each step in the workflow (rather than only reading)?
- [ ] Did I use verified tool paths based on `tool-index`?
- [ ] Did I produce reproducible evidence (commands/templates/screenshots/reports)?
- [ ] Did I complete and verify the Checklist items required by RULES?

Files in this skill

  • SKILL.md11.2 KB
  • references/ast-deobfuscation.md231 B
  • references/automation-entry.md595 B
  • references/env-patching.md308 B
  • references/fallbacks.md374 B
  • references/instrumentation.md282 B
  • references/local-rebuild.md400 B
  • references/mcp-task-template.md426 B
  • references/node-env-rebuild.md251 B
  • references/output-contract.md347 B
  • references/task-artifacts.md294 B
  • references/task-input-template.md172 B
  • references/tool-defaults.md478 B
  • support/SKILL.md17.1 KB
  • support/field-journal/precedent-reverse.md14.4 KB
  • support/reverse-engineering/references/nonpe-format-cookbook.md35 KB
  • support/routing.md29.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.