跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScriptNode.jsAI大前端

基于 MCP 协议辅助 JS 逆向分析与调试

介绍如何利用 Model Context Protocol (MCP) 结合 Chrome DevTools Protocol (CDP) 构建 JS 逆向专用工具集。通过封装代码搜索、调用栈追踪、断点调试、函数 Hook 等能力,使 AI 能够直接操作浏览器进行自动化逆向分析。内容涵盖工具集详解、实战场景(如加密函数定位、Cookie 生成分析)、AI 对话示例及搭建指南,旨在提升逆向工程效率。

FlinkHero发布于 2026/4/6更新于 2026/10/23119 浏览

构建 AI 逆向 MCP - 使用 MCP 辅助 JS 逆向

前言

谷歌推出了 chrome-dev-mcp,能够自动化浏览器操作。我发现这个 MCP 能抓包,于是思考:能不能用于 JS 逆向分析?

但实际用下来发现,常规逆向需要的能力它都不支持:

  • ❌ 搜索代码
  • ❌ 追踪调用栈
  • ❌ 打断点调试
  • ❌ Hook 函数
  • ❌ 查看变量值

那能不能给它打补丁?当然可以。

Chrome DevTools Protocol(CDP)本身支持这些能力,只是谷歌的 MCP 没有封装。于是我基于 CDP 扩展了一套逆向专用工具:

扩展能力对应工具
代码搜索search_in_sources、find_in_script
调用栈追踪get_request_initiator
断点调试set_breakpoint、set_breakpoint_on_text
单步执行step_into、step_over、step_out
变量查看get_paused_info、evaluate_on_callframe
函数 Hookhook_function、trace_function
XHR 拦截break_on_xhr

现在,AI 可以像人一样操作 DevTools 进行逆向分析了。

项目地址:https://github.com/zhizhuodemao/js-reverse-mcp

下面是完整的工具集和使用指南。


一、什么是 MCP

MCP(Model Context Protocol)是 Anthropic 推出的模型上下文协议,允许 AI 直接调用外部工具。

传统逆向流程:

步骤描述
1人工操作浏览器 → 复制数据 → 粘贴给 AI → AI 分析 → 人工验证

MCP 辅助流程:

步骤描述
1AI 直接操作浏览器 → 自动分析 → 自动验证 → 输出结果

二、JS 逆向 MCP 工具集

2.1 页面管理
工具功能
list_pages列出浏览器所有页面
select_page选择要操作的页面
new_page新建页面并导航
navigate_page页面导航(URL/前进/后退/刷新)
take_snapshot获取页面 DOM 快照
take_screenshot页面截图
2.2 网络分析
工具功能
list_network_requests列出所有网络请求
get_network_request获取请求详情(Headers/Body/Response)
get_request_initiator获取请求调用栈 - 定位发起请求的代码
break_on_xhrXHR/Fetch 断点 - URL 匹配时暂停
2.3 脚本分析
工具功能
list_scripts列出页面加载的所有 JS 脚本
get_script_source获取脚本源码(支持行范围/字符偏移)
find_in_script在指定脚本中搜索字符串
search_in_sources全局搜索所有脚本
2.4 断点调试
工具功能
set_breakpoint设置行断点(支持条件断点)
set_breakpoint_on_text按代码文本设置断点 - 适合混淆代码
remove_breakpoint移除断点
list_breakpoints列出所有断点
pause立即暂停执行
resume继续执行
step_into单步进入
step_over单步跳过
step_out跳出当前函数
2.5 运行时分析
工具功能
get_paused_info获取暂停状态(调用栈/作用域变量)
evaluate_on_callframe在断点处执行表达式 - 查看变量值
evaluate_script在页面执行 JS 代码
inspect_object深度检查对象结构
2.6 Hook 与追踪
工具功能
hook_functionHook 函数 - 记录调用/参数/返回值
unhook_function移除 Hook
list_hooks列出所有 Hook
trace_function追踪函数调用 - 不暂停,只记录
monitor_events监听 DOM 事件
2.7 存储与控制台
工具功能
get_storage获取 Cookie/localStorage/sessionStorage
list_console_messages列出控制台消息
get_console_message获取控制台消息详情

三、实战场景

3.1 定位加密函数

目标:找到生成 w_tsfp 参数的代码

步骤操作
1list_network_requests → 找到携带 w_tsfp 的请求
2get_request_initiator → 获取调用栈,定位发起代码
3get_script_source → 查看相关脚本
4set_breakpoint_on_text → 在关键代码处设断点
5刷新页面触发断点
6get_paused_info → 查看调用栈和变量
7evaluate_on_callframe → 检查加密前后的值
3.2 分析 Cookie 生成

目标:追踪 Cookie 的设置过程

步骤操作
1hook_function → Hook document.cookie setter
2刷新页面
3list_console_messages → 查看 Hook 日志
4从日志中获取调用栈
5get_script_source → 定位生成逻辑
3.3 XHR 断点调试

目标:在特定 API 请求时暂停

步骤操作
1break_on_xhr → 设置 URL 匹配断点(如 /api/sign)
2触发请求
3get_paused_info → 获取完整调用栈
4step_into / step_over → 单步调试
5evaluate_on_callframe → 查看签名参数
3.4 VM 字节码分析

目标:追踪 VM 执行过程

步骤操作
1search_in_sources → 搜索 VM 解释器特征
2find_in_script → 定位具体位置
3set_breakpoint → 在 VM 循环处设断点
4get_paused_info → 获取 PC、寄存器等状态
5trace_function → 追踪关键函数调用

四、AI 对话示例

4.1 定位加密入口
用户:帮我找到这个页面 w_tsfp 参数的生成位置

AI:
1. 调用 list_network_requests 找到相关请求
2. 调用 get_request_initiator 获取调用栈
3. 分析调用栈,定位到 probe.js 第 XXX 行
4. 调用 get_script_source 获取上下文代码
5. 输出:w_tsfp 在 RC4 加密后通过 btoa 编码,入口函数是 ...
4.2 动态调试
用户:在 RC4 加密函数处设断点,我想看加密前的明文

AI:
1. 调用 search_in_sources 搜索 "RC4" 或特征代码
2. 调用 set_breakpoint_on_text 设置断点
3. 提示用户刷新页面
4. 断点命中后调用 get_paused_info
5. 调用 evaluate_on_callframe 获取参数值
6. 输出:加密前明文是 {"loadts":...,"fingerprint":...}
4.3 批量 Hook
用户:Hook 所有可能的加密函数,看哪个被调用

AI:
1. 调用 hook_function 依次 Hook:
   - btoa
   - atob
   - JSON.stringify
   - encodeURIComponent
2. 提示用户操作页面
3. 调用 list_console_messages 查看 Hook 日志
4. 输出:btoa 被调用,参数是 RC4 加密后的数据...

五、优势总结

5.1 效率提升
传统方式MCP 方式
手动打开 DevToolsAI 直接操作
复制粘贴数据自动获取
人工搜索代码search_in_sources
反复设断点调试AI 自动迭代
手写 Hook 代码hook_function 一键 Hook
5.2 适合场景
  • 混淆代码分析:AI 可以快速搜索、设断点、查看变量
  • VM 逆向:自动追踪执行流程,记录状态变化
  • 加密算法定位:Hook + 调用栈分析,快速定位入口
  • 批量测试:自动化执行多轮测试
5.3 局限性
  • 需要浏览器配合(DevTools Protocol)
  • 某些反调试可能检测 CDP 连接
  • 复杂异步逻辑仍需人工判断
  • AI 理解能力有限,核心决策仍需人工

六、搭建指南

6.1 环境要求
  • Chrome/Chromium 浏览器
  • Node.js 运行时
  • Claude Desktop 或支持 MCP 的客户端
6.2 核心原理
Claude ←→ MCP Server ←→ Chrome DevTools Protocol ←→ 浏览器

MCP Server 封装 CDP 协议,暴露为 AI 可调用的工具函数。

6.3 关键能力
  1. 页面控制:导航、刷新、截图
  2. 网络拦截:请求列表、调用栈追踪
  3. 脚本调试:断点、单步、变量查看
  4. 代码注入:Hook、Trace、执行任意 JS

七、最佳实践

  1. 先观察再动手:用 list_network_requests 了解请求模式
  2. 善用搜索:search_in_sources 比手动翻代码快
  3. 断点要精准:set_breakpoint_on_text 比行号更可靠
  4. Hook 优先:先 Hook 观察,再设断点深入
  5. 保存上下文:让 AI 记录关键发现,避免重复分析
  6. 分步验证:每一步都验证结果,避免错误累积

MCP 让 AI 从'分析助手'变成'操作助手',显著提升逆向效率

目录

  1. 构建 AI 逆向 MCP - 使用 MCP 辅助 JS 逆向
  2. 前言
  3. 一、什么是 MCP
  4. 二、JS 逆向 MCP 工具集
  5. 2.1 页面管理
  6. 2.2 网络分析
  7. 2.3 脚本分析
  8. 2.4 断点调试
  9. 2.5 运行时分析
  10. 2.6 Hook 与追踪
  11. 2.7 存储与控制台
  12. 三、实战场景
  13. 3.1 定位加密函数
  14. 3.2 分析 Cookie 生成
  15. 3.3 XHR 断点调试
  16. 3.4 VM 字节码分析
  17. 四、AI 对话示例
  18. 4.1 定位加密入口
  19. 4.2 动态调试
  20. 4.3 批量 Hook
  21. 五、优势总结
  22. 5.1 效率提升
  23. 5.2 适合场景
  24. 5.3 局限性
  25. 六、搭建指南
  26. 6.1 环境要求
  27. 6.2 核心原理
  28. 6.3 关键能力
  29. 七、最佳实践

更多推荐文章

查看全部
  • Qwen3-4B-Instruct-2507 智能写作助手部署与优化
  • 链表十大经典 OJ 题目详解与实战技巧
  • 深度视觉赋予足式机器人极限运动能力:从盲行到跑酷
  • 通义万相 2.1 多模态生成模型部署与应用实践
  • Python 网络爬虫技术详解
  • 数据大模型与低代码融合的现状、乱象及落地实践
  • 无人机红外照片处理中的温度校准与精度优化策略
  • Java 异常处理:从原理到实战最佳实践
  • .NET 集成 GoView 低代码可视化大屏实战指南
  • 前端动画演进:告别 jQuery animate,拥抱现代方案
  • Python 汽车销售大屏数据分析可视化系统设计与实现
  • 使用 OpenClaw 集成飞书构建专属 AI 机器人指南
  • GitHub Copilot 学生身份认证与激活指南
  • 前端 EME DRM 反录屏原理与实战代码
  • Python 开发必备十大工具:从 IDE 到数据分析库详解
  • Proxmox VE 部署 Kali Linux 完整实战指南
  • openKylin 通过 SSH+cpolar 实现远程内网穿透
  • Spring AI 核心特性与企业级 AI 应用实践
  • 基于 Unity 与 AI 工具快速开发简易小游戏
  • HuggingFace 镜像与反向代理加速 GLM-4.6V-Flash-WEB 模型加载

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online