0x01 前言
随着前端防护手段日益复杂,参数加密场景广泛且生成逻辑经过多层混淆与封装,人工逆向方法耗时费力且高度依赖经验。本文旨在结合 chrome-devtools-mcp 的能力与 Skill 规范,实现基于 JSRPC、Flask 和 autoDecoder 的前端 JS 逆向自动化分析方案,提升逆向效率。
本文内容仅供技术学习与交流使用,请遵守相关法律法规,因违规使用产生的一切后果由使用者自行承担。
0x02 漏洞详情
传统 JS 逆向方法回顾
传统 JS 逆向工程实践中已形成一系列技术路径,主要归纳为四类:
- 直接修改变量法:进入调试模式,在参数加密前直接在作用域中修改参数。
- 中间劫持法(JS-forward):通过 JS-forward 实现在明文点处插入代码,将请求内容发送给 Burp Suite 拦截并修改后返回。
- 远程调用法(JS-RPC):注入到浏览器页面中的客户端,通过 WebSocket 与本地 Python 服务端相连,直接调用浏览器上下文中预先注册的 JavaScript 函数。
- 硬核对抗法(JS 原生):通过反混淆分析代码逻辑研究参数作用添加补环境,最终通过本地运行 JS 来加解密。
在接下来的方案中,选择远程调用法(JS-RPC)作为 MCP 赋能 JS 逆向的底座。它能将浏览器环境直接转化为加密服务接口,避免纯手动逆向的低效,又绕开了纯 JS 还原的高复杂度,适配复杂场景下的 JS 逆向对抗。
MCP 赋能的集成方案
工具链介绍
- JSRPC:注入到浏览器页面中的客户端,建立通过 WebSocket 协议的远程过程调用机制,直接调用在浏览器上下文中预先注册好的 JavaScript 函数。
- Flask:接收来自自动化工具如 Burp Suite 插件的请求,提取出需要加密的参数,然后通过 JSRPC 调用浏览器中的函数进行加密,最后重构请求并转发至目标服务器。
- autoDecoder:Burp Suite 的插件,用于自动化处理应用中的加密/编码接口,自动将明文参数发送至该服务器,并完成加密请求的构建。
- chrome-devtools-mcp:通过 Chrome DevTools Protocol 与浏览器实例建立连接,将浏览器的底层控制能力封装成一系列标准化的工具,并通过 MCP 协议暴露给 AI 客户端。
流程设计
针对远程调用法初始配置阶段中定位加密函数、编写注册代码等繁琐操作,引入 AI 技术进行赋能,让 AI 自动完成函数发现与注册代码生成,最终实现从'半自动'到'高自动'的跨越。
MCP 配置
- 使用 codex 来调用 MCP 服务,首先将 MCP 服务器写进 Codex 的配置。
codex mcp add chrome-devtools npx -y chrome-devtools-mcp@latest
- 修改 Codex 的配置文件(MAC 在 ~/.codex/config.toml),添加如下字段。
[mcp_servers.chrome-devtools]
-
检测是否生效。
-
启动 MCP 服务,当看到打开浏览器后 MCP 服务就配置好了。
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
Skill 配置
Skill 是能否一次性完成 JS 分析和代码生成的关键,创建 3 个 markdown 文件用于规范 AI 的操作以及输出。
1、主技能模板 (js-reverse-automation)
负责整体流程控制和协调,规范 AI 通过 MCP 协议连接和控制浏览器环境。


