js-reverse
Allows your agent to analyze and reproduce client-side JavaScript logic. This is useful for understanding how data is processed or encrypted on websites.
What it does
This tool helps understand how websites and web applications work internally, especially how they send information securely or hidden. It allows investigating JavaScript code to uncover secrets and reproduce the behavior on your own computer.
When to use it
- ✓When you need to know how a website protects its data when sending it.
- ✓If you want to understand the logic behind a specific function on a website.
- ✓To recreate the functionality of a part of a website in your own environment for study.
Example of what to ask your AI
“I want to understand how this website sends my login data securely. Can you analyze the JavaScript code to show me?”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool observes the website's behavior in the browser, how it sends requests and executes code. It can 'pause' execution at specific points to view data and then attempts to recreate this logic in a controlled environment on your computer.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill js-reverseOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/js-reverse/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
⚠️ AUTHORIZED USE ONLY This skill is for educational purposes or authorized security assessments only. You must have explicit, written permission from the system owner before using this tool. Misuse of this tool is illegal and strictly prohibited.
Mandatory confirmation gate Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
- Ask the user to state the exact target URL, IP, account, or resource.
- Ask the user to confirm written authorization and the permitted scope.
- Show the exact command(s) and explain their expected effect.
- Wait for explicit confirmation in the current conversation.
Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
MCP 前端 JS 逆向作业规范
When to Use
- Understanding how a web application signs or encrypts API requests.
- Reproducing client-side crypto locally to validate analysis.
适用范围
当任务属于以下场景时优先使用本 skill:
- 定位接口签名、加密参数、风控字段
- 观察页面请求链路与脚本来源
- 在运行时抓取函数入参与返回值
- 追踪某个 XHR/Fetch/WebSocket 的触发点
- 把页面证据带回 Node 做本地复现与补环境
如果目标是二进制、APK、PE、ELF、DLL、SO,请改用 ida-reverse、radare2 或 reverse-engineering。
当前环境默认工具映射
本 skill 不假设存在裸工具名,而是默认绑定当前客户端环境里可用的 js-reverse_* 工具。
如果当前任务明确提到 jshookmcp、JS hook、CDP、浏览器断点、网络拦截、SourceMap 或 AST 去混淆,也仍然走本 skill;只是把底层 MCP 面切到 jshookmcp,而不是把它当成一个新的总入口。
前提条件:jshookmcp 不是本地裸命令工具,而是一个要先下载、显式注册并启用的 MCP server。只有在所选客户端(Claude、Codex 等)的 MCP 配置里接入并启用后,相关工具面才真的可调用。
常用映射:
list_scripts->js-reverse_list_scriptsget_script_source->js-reverse_get_script_sourcesearch_in_sources->js-reverse_search_in_sourcesbreak_on_xhr->js-reverse_break_on_xhrevaluate_script->js-reverse_evaluate_scriptget_paused_info->js-reverse_get_paused_infoset_breakpoint_on_text->js-reverse_set_breakpoint_on_textlist_network_requests->js-reverse_list_network_requestsget_request_initiator->js-reverse_get_request_initiatorget_websocket_messages->js-reverse_get_websocket_messagestake_screenshot->js-reverse_take_screenshotnew_page->js-reverse_new_pagenavigate_page->js-reverse_navigate_pageselect_page->js-reverse_select_pageselect_frame->js-reverse_select_framepause/resume->js-reverse_pause_or_resume
如果未来工具名前缀变化,先更新本节,不要在执行时临时猜测。
jshookmcp 的定位
- 角色:
js-reverse的增强执行面,不是独立总控 - 适合:浏览器自动化、CDP 调试、JS Hook、网络拦截、SourceMap 重建、AST 辅助理解
- 调用前提:先把
@jshookmcp/jshook下载并注册到 MCP 客户端配置里,然后确保该 server 已启用 - 建议入口:仍然按
Observe → Capture → Rebuild执行,只是在Observe/Capture阶段优先调用 jshookmcp 的浏览器与 Hook 能力 - 与 anything-analyzer 关系:两者都能做浏览器/网络侧取证;anything-analyzer 更偏抓包与 HTTP 分析,jshookmcp 更偏 JS 运行时、CDP、Hook 和源码理解
核心原则
Observe-firstHook-preferredBreakpoint-lastRebuild-orientedEvidence-first
先页面观察,再最小化采样,再做本地补环境,不要跳过取证直接猜环境。
五阶段工作流
1. Observe
目标:先确认目标请求、相关脚本、候选函数,不猜环境。
默认动作:
- 用
js-reverse_new_page或js-reverse_navigate_page打开目标页面 - 用
js-reverse_list_network_requests找目标请求 - 用
js-reverse_get_request_initiator回溯调用来源 - 用
js-reverse_list_scripts、js-reverse_search_in_sources缩小脚本范围
必须产出:
- 目标请求 URL 或特征
- initiator 线索
- 可疑脚本 URL
- 初始任务记录
2. Capture
目标:对目标请求做最小侵入采样,拿到参数样例、调用顺序、运行时证据。
规则:
- 优先
js-reverse_break_on_xhr - 优先
js-reverse_evaluate_script做轻量运行时观察 - 命中后先看
js-reverse_get_paused_info - 必要时再用
js-reverse_set_breakpoint_on_text
3. Rebuild
目标:把页面证据整理成本地可迭代的 Node 复现材料。
规则:
- 本地补环境必须以页面观测证据为依据
- 不允许空想式补
window/document/navigator/crypto/storage - 每次只记录一个最小因果补丁决策
4. Patch
目标:按报错和 first divergence 驱动补环境,直到本地脚本稳定跑出目标参数。
规则:
- 先看缺什么,再补什么
- 一次只做一个最小补丁决策
- 每次补丁后立即复测
- 每次补丁都写入任务记录
5. DeepDive
目标:本地跑通后,再做去混淆、控制流还原、业务逻辑提纯。
规则:
- 如果当前任务只是出签名,这一阶段可以降级
- 如果要长期复用算法链路,这一阶段必须做
- Issue #65 混淆旁路(U–AV §4):JSVMP(AD)→
E-js-vmp;CFF+字符串数组(AE)→E-js-deobf;DevTools/debugger 反调试(AF)→E-js-anti-debug。完整触发表见../reverse-engineering/references/nonpe-format-cookbook.md;AST 细节仍用references/ast-deobfuscation.md
执行要求
- 所有重要步骤都要写入本地 task artifact
- 如果无法解释为什么调用某个工具,就不要调用
- 优先使用
js-reverse_*或 jshookmcp 的现成 MCP 能力直接取证,不要先写脚本重造能力 - 失败时按
references/fallbacks.md回退 - 输出遵循
references/output-contract.md
必读引用
- 自动化入口:
references/automation-entry.md - 参数默认值:
references/tool-defaults.md - 任务输入模板:
references/task-input-template.md - MCP 专用任务编排:
references/mcp-task-template.md
…
FAQ
Do I need permission to use this tool?
Yes, you must have explicit, written permission from the system owner before using this tool. Unauthorized use is illegal.
What happens if I don't have permission?
If you do not have written permission, the tool can only provide defensive guidance and cannot perform any actions that probe or alter the target.
Can this tool break websites?
The main goal is to understand and reproduce logic, not to break websites. It's designed for analysis and study, but like any investigation tool, it must be used responsibly and with permission.
Details
Original description by the author
Front-end JavaScript reverse engineering: locate signature chains, analyze encrypted request parameters, sample runtime behavior, and reproduce logic locally in Node for evidence-based output.
Popularity
- GitHub stars
- 48k
- Ranking position
- #3382
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
angular-developer
Helps your agent create Angular code and give project structure advice. Useful for starting new projects, creating code parts, or improving performance and accessibility.
affaan-m/ECC
frontend-a11y
Helps your agent make web interfaces accessible to everyone. It ensures websites and apps work well with screen readers and keyboard navigation.
affaan-m/ECC
frontend-patterns
Has your agent apply modern patterns in frontend development. It optimizes performance, manages state, and follows best practices in React and Next.js.
affaan-m/ECC