MCP server by p0ex-001
JS Reverse MCP
JavaScript 逆向工程 MCP 服务器,让 AI 助手能够自动分析网页加密逻辑并生成 Node.js 代码。
✨ 核心功能
- 📦 数据包分析 - 直接粘贴 cURL/HTTP 请求,AI 自动分析加密逻辑
- 🤖 全自动逆向 - AI 自动打开页面、填表单、触发请求、分析加密
- 🔍 调用栈追踪 - 定位加密函数在哪个 JS 文件的哪一行
- 🛡️ 反反调试 - 自动绕过 debugger 死循环等反调试手段
- 🔓 反混淆 - 解码混淆的字符串,还原代码逻辑
系统要求
安装
git clone https://github.com/zhizhuodemao/js-reverse-mcp.git
cd js-reverse-mcp
npm install
npm run build
配置 MCP 客户端
{
"mcpServers": {
"js-reverse": {
"command": "node",
"args": ["/你的路径/js-reverse-mcp/build/src/index.js"]
}
}
}
Claude Code
claude mcp add js-reverse node /你的路径/js-reverse-mcp/build/src/index.js
Cursor
Cursor Settings → MCP → New MCP Server
VS Code Copilot
code --add-mcp '{"name":"js-reverse","command":"node","args":["/你的路径/js-reverse-mcp/build/src/index.js"]}'
🚀 快速开始
方式一:直接分析数据包(最简单)
把抓包工具里的请求复制给 AI:
分析这个请求,还原加密逻辑并写 Node.js 代码:
curl 'https://api.example.com/login' \
-H 'X-Sign: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6' \
-H 'X-Timestamp: 1702108800000' \
--data-raw '{"username":"test","password":"e10adc3949ba59abbe56e057f20f883e"}'
支持格式:
- cURL - 从浏览器 Network 面板右键复制
- Raw HTTP - 从 Fiddler/Charles/Burp 复制
- JSON -
{ url, method, headers, body }
方式二:全自动逆向
逆向 https://example.com/login 的登录接口
用户名框 #username,密码框 #password,按钮 #loginBtn
填入 test / 123456
AI 会自动:打开页面 → 填写表单 → 点击按钮 → 捕获请求 → 分析加密 → 写代码
方式三:分析已有请求
分析 /api/login 接口的调用栈,找出加密函数位置
工具列表
一键逆向
| 工具 | 描述 |
|------|------|
| analyze_packet | 【推荐】直接分析 HTTP 数据包,无需浏览器 |
| auto_reverse | 全自动逆向:填表单、点击、捕获、分析 |
| analyze_encryption | 分析加密逻辑,输出结构化结果 |
| analyze_api_call | 分析 API 调用栈,定位加密函数 |
| generate_report | 生成结构化逆向报告 |
| start_reverse | 启动逆向环境 |
| quick_reverse | 快速 Hook/搜索/追踪 |
反混淆
| 工具 | 描述 |
|------|------|
| deobfuscate | 反混淆:解码字符串、美化代码 |
| decode_strings_in_page | 运行时解码混淆字符串 |
| analyze_obfuscation | 分析混淆技术类型 |
反反调试
| 工具 | 描述 |
|------|------|
| bypass_anti_debug | 绕过反调试 |
| disable_debugger_statements | 禁用 debugger 语句 |
| enable_debugger_pauses | 恢复 debugger 暂停 |
脚本分析
| 工具 | 描述 |
|------|------|
| list_scripts | 列出所有 JS 脚本 |
| get_script_source | 获取脚本源码 |
| search_in_sources | 搜索所有脚本 |
| find_in_script | 在脚本中查找 |
断点调试
| 工具 | 描述 |
|------|------|
| set_breakpoint | 设置断点 |
| set_breakpoint_on_text | 通过代码文本设置断点 |
| remove_breakpoint | 移除断点 |
| list_breakpoints | 列出断点 |
执行控制
| 工具 | 描述 |
|------|------|
| get_paused_info | 获取暂停状态和调用栈 |
| resume | 继续执行 |
| pause | 暂停执行 |
| step_over/into/out | 单步调试 |
| evaluate_on_callframe | 在断点处求值 |
函数 Hook
| 工具 | 描述 |
|------|------|
| hook_function | Hook 函数,记录调用 |
| unhook_function | 移除 Hook |
| list_hooks | 列出 Hook |
| trace_function | 追踪函数调用 |
网络调试
| 工具 | 描述 |
|------|------|
| list_network_requests | 列出网络请求 |
| get_network_request | 获取请求详情 |
| get_request_initiator | 获取请求调用栈 |
| break_on_xhr | XHR 断点 |
页面操作
| 工具 | 描述 |
|------|------|
| list_pages | 列出页面 |
| select_page | 选择页面 |
| new_page | 新建页面 |
| navigate_page | 导航页面 |
| evaluate_script | 执行 JS |
| take_screenshot | 截图 |
检查工具
| 工具 | 描述 |
|------|------|
| inspect_object | 深度检查对象 |
| get_storage | 获取存储数据 |
| monitor_events | 监控 DOM 事件 |
| list_console_messages | 获取控制台消息 |
使用示例
逆向登录接口
1. 分析这个登录请求的加密逻辑:[粘贴 cURL]
2. 帮我写出 Node.js 代码实现相同的请求
定位加密函数
1. 打开 https://example.com
2. 搜索 "encrypt" 相关代码
3. 在加密函数设置断点
4. 分析调用栈和参数
处理混淆代码
1. 分析这个 JS 的混淆方式
2. 反混淆并还原代码
绕过反调试
启动逆向 https://example.com,自动绕过反调试
配置选项
| 选项 | 描述 |
|------|------|
| --browserUrl, -u | 连接已运行的 Chrome |
| --headless | 无头模式 |
| --executablePath, -e | Chrome 路径 |
| --isolated | 临时用户目录 |
| --viewport | 视口大小 |
连接已运行的 Chrome
# 启动 Chrome
chrome.exe --remote-debugging-port=9222 --user-data-dir="%TEMP%\chrome-debug"
# 配置 MCP
{
"args": ["build/src/index.js", "--browser-url=http://127.0.0.1:9222"]
}
安全提示
此工具会暴露浏览器内容给 AI,请勿在包含敏感信息的页面上使用。
许可证
Apache-2.0