JS 逆向系统进阶路线:专栏总纲与文章导航

目录

本文是《JS 逆向系统进阶》专栏的总纲与导航页。专栏会按照 主线学习 + 专题扩展 + 案例索引 的方式长期更新:主线文章负责建立系统能力,专题文章负责深入某一类技术点,案例文章负责沉淀靶场和真实场景中的分析经验。

这份学习地图覆盖 JavaScript 基础、密码学、浏览器 调试、Hook、扣代码、补环境、验证码、Webpack、AST、AI 辅助逆向、JSVMP、WASM、JSRPC、视频流分析、字体反爬与真实案例复盘。

免责声明与使用边界:本系列内容仅用于合法授权的学习研究、安全分析、风控防护理解与技术交流。文章中可能会结合靶场、公开页面或真实产品案例讲解分析思路,也可能提供用于复现实验流程的示例代码,但所有内容都应在合法授权、合理频率和不影响目标服务正常运行的前提下使用。请勿将本文中的方法、脚本或思路用于未授权访问、批量采集、账号撞库、绕过业务风控、破坏 验证码 体系、规避平台规则、侵犯数据权益或影响线上系统稳定。涉及真实案例时,敏感参数、账号信息、Cookie、Token、接口细节和可直接滥用的部分会尽量做脱敏或抽象处理。如相关网站、产品方、权利方或网站所有者认为文章内容涉及侵权、敏感信息披露或不适宜公开展示,可通过 CSDN 私信、评论区或作者主页提供的联系方式联系我;核实后我会及时删除、替换或进一步脱敏相关内容。读者因不当使用造成的任何法律责任、业务风险或经济损失,均由使用者自行承担,与作者无关。

一、为什么要整理这套 JS 逆向路线?

JS 逆向并不是一个只靠单点技巧就能长期推进的方向。真实网站里的前端加密、参数签名、Cookie 生成、浏览器指纹、Webpack 打包、验证码流程、补环境、反调试、WASM、JSVMP 等问题,往往不是单独出现,而是以不同组合叠在一起。

很多资料会围绕某个站点、某个参数、某段加密逻辑展开,实战感很强,但知识点之间容易断开:这个案例能跟下来,换一个技术栈、换一种防护组合,就又需要重新摸索。

所以这个专栏更适合被看作一张长期更新的学习地图,而不是一份一次性写完的清单。

它的核心目标是把 JS 逆向拆成三类内容:

text 复制代码
主线学习: 建立 JavaScript、密码学、调试、Hook、扣代码、混淆、补环境、AST 等基础能力
专题扩展: 围绕验证码、Webpack、AI 辅助、JSVMP、WASM、JSRPC、视频流、字体反爬继续深入
案例索引: 把靶场案例、真实站点案例、补环境案例、验证码案例等按专题沉淀,方便持续追加

主线文章会保留固定编号,方便从基础到进阶连续阅读;案例文章则按专题归档,方便后续持续追加。对读者来说,更重要的是知道:现在卡住的问题属于哪个能力模块,应该回到哪一篇主线文章补基础,又可以通过哪些案例继续练手。

一条更适合长期学习的能力链可以这样理解:

text 复制代码
JavaScript 基础
  -> 密码学与编码
  -> 浏览器调试
  -> Hook 与扣代码
  -> 混淆识别与还原
  -> Webpack 与现代前端工程化
  -> 验证码流程分析
  -> 补环境与浏览器指纹
  -> AST 自动化反混淆
  -> AI 辅助逆向
  -> JSVMP、WASM、JSRPC、视频流与字体反爬
  -> 真实案例复盘与工程化沉淀

这篇文章会作为 CSDN 专栏的总纲和导航页使用。后续新增文章时,会优先追加到对应专题或案例分类中,而不是为了维持某套固定编号去反复重排目录。

二、系列文章导航(持续更新)

这一节会作为后续 CSDN 系列文章的总导航。

基础篇:JS 语言、运行环境与工程化

  1. 《JS 逆向系统进阶》00:为什么要系统学习 JS 逆向?总纲与路线导航 👉 查看文章
  2. 《JS 逆向系统进阶》01:JS 运行原理、作用域、闭包与 this 绑定 👉 查看文章
  3. 《JS 逆向系统进阶》02:原型链、属性描述符、Proxy、Promise 与 ES6+ 核心语法 👉 查看文章
  4. 《JS 逆向系统进阶》03:BOM、DOM、浏览器环境与 Node.js 逆向应用 👉 查看文章
  5. 《JS 逆向系统进阶》04:错误处理、模块化、包管理与 XHR/fetch/WebSocket 通信 👉 查看文章

密码学专题篇:编码、哈希、对称加密、RSA 与国密

  1. 《JS 逆向系统进阶》05:密码学逆向基础,位运算、端序、分组与通用排查流程 👉 查看文章
  2. 《JS 逆向系统进阶》06:编码解码专题,Hex、Base64、URL encode 与 CryptoJS WordArray 👉 查看文章
  3. 《JS 逆向系统进阶》07:哈希与摘要专题,MD5、SHA-256、HMAC、SM3 与可验证推导 👉 查看文章
  4. 《JS 逆向系统进阶》08:对称加密专题,AES、DES/3DES、RC4、SM4 与 mode/padding/key/iv 👉 查看文章
  5. 《JS 逆向系统进阶》09:非对称加密与签名专题,RSA、SM2、PEM/Base64/DER 与 Python 细节 👉 查看文章

核心能力篇:调试、Hook、扣代码与混淆

  1. 《JS 逆向系统进阶》10:Chrome DevTools 调试,断点、调用栈、Network 与反调试 👉 查看文章
  2. 《JS 逆向系统进阶》11:JS Hook 与 Proxy,从函数替换到补环境沙箱 👉 查看文章
  3. 《JS 逆向系统进阶》12:扣代码工作流,依赖追踪、本地复现与 Python 调用 JS 👉 查看文章
  4. 《JS 逆向系统进阶》13:混淆原理,字符串加密、控制流平坦化、死代码与反调试 👉 查看文章

实战方法篇:验证码、Webpack 与 AI 逆向

  1. 《JS 逆向系统进阶》14:验证码入门,图片识别、简单滑块与 Cookie/Session 状态绑定 👉 查看文章
  2. 《JS 逆向系统进阶》15:Webpack 模块逆向方法论,打包结构、require 劫持与签名模块定位 👉 查看文章
  3. 《JS 逆向系统进阶》16:AI 辅助逆向,混淆代码分析、Hook 生成与自动化工作流 👉 查看文章

补环境篇:手动补环境、iv8、复杂验证码与模型训练

  1. 《JS 逆向系统进阶》17:补环境入门,浏览器对象、原型链、属性描述符与检测点 👉 查看文章
  2. 《JS 逆向系统进阶》18:iv8 浏览器运行时,不手动补环境的通杀思路 👉 查看文章
  3. 《JS 逆向系统进阶》19:复杂验证码进阶,滑块缺口、行为轨迹与验证接口分析 👉 查看文章
  4. 《JS 逆向系统进阶》20:验证码模型训练,数据集制作、标注、训练与部署 👉 查看文章

高级专题篇:AST、JSVMP、WASM、JSRPC、视频流与字体反爬

  1. 《JS 逆向系统进阶》21:AST 基础,Babel 解析、遍历、作用域与代码生成 👉 查看文章
  2. 《JS 逆向系统进阶》22:AST 解混淆实战,字符串还原、死代码删除与控制流恢复 👉 查看文章
  3. 《JS 逆向系统进阶》23:JSVMP 初识,虚拟机混淆、指令分发与还原思路 👉 待更新
  4. 《JS 逆向系统进阶》24:WASM 逆向入门,wasm 加密模块、导入导出与调试方法 👉 待更新
  5. 《JS 逆向系统进阶》25:JSRPC 实战,复杂站点低频数据场景下的浏览器远程调用方案 👉 待更新
  6. 《JS 逆向系统进阶》26:m3u8 与视频流分析,播放链路、分片请求与合法下载场景 👉 待更新
  7. 《JS 逆向系统进阶》27:字体反爬,字体映射、CSS 偏移与 Canvas 渲染识别 👉 查看文章

真实案例池:按专题持续追加,独立于主线编号

SpiderDemo 靶场案例

  1. SpiderDemo:请求头检测挑战,TLS 指纹与缓存头校验 👉 待更新

  2. SpiderDemo:摘要算法入门,MD5 / SHA / HMAC 还原 👉 待更新

  3. SpiderDemo:对称加密实战,DES 与 AES 复现 👉 待更新

  4. SpiderDemo:调试拦截与非对称加密,无限 debugger 绕过 + RSA 签名 👉 待更新

  5. SpiderDemo:OB 混淆下的盐值 MD5 还原 👉 待更新

  6. SpiderDemo:OB 混淆 + 反调试 + signature 签名,手动分析、补环境、RPC 与 AST 取舍 👉 待更新

验证码案例

  1. 案例:数英验证码,图片验证码识别、Session 绑定与翻页采集 👉 待更新

  2. 案例:计算型验证码,接口流程、验证码识别与自动提交 👉 待更新

  3. 案例:动画 GIF 验证码,真假图片帧定位与识别 👉 待更新

  4. 案例:中大网校登录,RSA 加密、Cookie / Session 陷阱与登录流程复现 👉 待更新

真实站点密码学案例

  1. 案例:新华社客户端,3DES 双向加解密与 JS / Python 复现 👉 查看文章

  2. 案例:全国新书网,AES/CBC 双向加解密与 JSON 序列化坑点 👉 查看文章

  3. 案例:福建公共资源交易平台,MD5 签名 + AES 响应解密 👉 查看文章

  4. 案例:青岛市政府信箱,RSA + AES 混合加密 👉 待更新

  5. 案例:内蒙古 12345 政务热线,SM2 国密加密 + AES 响应解密 👉 待更新

  6. 案例:中国理财网信息披露平台,RSA 私钥签名与 SHA256withRSA 👉 待更新

  7. 案例:中国观鸟记录中心,RSA 请求加密 + MD5 签名 + AES 响应解密 👉 待更新

Webpack 案例

  1. 案例:蜂鸟竞技 LOL 赛程,SHA256 签名与 Webpack 模块逆向 👉 待更新

  2. 案例:国家医保服务平台,SM4 加密 + SM2 签名 + SHA256 请求头的 Webpack 进阶案例 👉 待更新

补环境入门案例

  1. 案例:QQ 音乐补环境,适合作为浏览器对象和请求参数入门案例 👉 待更新

  2. 案例:今日头条补环境,适合作为新闻类站点环境检测入门案例 👉 待更新

瑞数与强环境检测案例

  1. 案例:瑞数手动补环境,Cookie 生成、Trace 分析与环境检测点拆解 👉 查看文章

  2. 案例:瑞数 iv8 通杀,一轮/两轮模式与框架化调用 👉 查看文章

  3. 案例:某东 h5st,浏览器指纹、环境参数与签名链路分析 👉 待更新

  4. 案例:抖音 ab / a_bogus,浏览器指纹、动态参数与补环境取舍 👉 待更新

  5. 案例:Akamai / BotManager,强风控脚本与环境检测思路 👉 待更新

原型链补环境案例

  1. 案例:知乎,基于构造函数、原型链和属性描述符的补环境实践 👉 待更新

  2. 案例:小红书 x-s / x-t,原型链补环境与请求签名分析 👉 待更新

  3. 案例:腾讯滑块,验证码参数、环境对象与行为验证链路 👉 待更新

  4. 案例:某团 mtgsig,签名模块、WASM/环境检测与原型链补环境 👉 待更新

WASM、JSVMP 与混合防护案例

  1. 靶场:WASM 逆向入门,先用可控案例讲清 wasm 加密模块定位和调试 👉 待更新

  2. 案例:荔枝网,WASM 结合补环境的真实站点分析 👉 待更新

  3. 靶场:JSVMP 入门,虚拟机调度、指令还原和日志辅助分析 👉 待更新

  4. 案例:JSVMP 结合补环境,复杂混淆与浏览器环境共同作用的处理思路 👉 待更新

验证码与纯算案例

  1. 案例:极验点选纯算,点选坐标、参数加密与验证流程分析 👉 待更新

  2. 案例:商业滑块验证码,轨迹、环境参数与服务端校验链路 👉 待更新

上面主线文章尽量保持固定编号,真实案例池按专题持续追加。后续新增案例时,只需要追加到对应案例池,不需要重新调整主线文章顺序。

三、这套专栏适合哪些人?

这套内容比较适合下面几类读者:

  1. 有一点 JavaScript 基础,但不知道如何进入 JS 逆向的人。
  2. 会用 Python 写爬虫,但遇到前端加密、签名、验证码流程就卡住的人。
  3. 会打开 DevTools,但不熟悉断点、调用栈、XHR/fetch、Hook 的人。
  4. 能扣简单函数,但遇到浏览器环境、Webpack、混淆、闭包依赖就跑不起来的人。
  5. 想学习补环境、浏览器指纹、瑞数、京东 h5st、AST 反混淆等进阶内容的人。
  6. 想把 AI 融入逆向流程,但又不想完全依赖 AI 直接给答案的人。

如果你只想找一段现成代码直接复制,这套系列可能不一定适合你。它更偏向长期能力建设:让你逐步形成定位、分析、复现、验证和自动化处理问题的能力。

四、专栏内容如何组织?

这个专栏后续会按三条线维护:

text 复制代码
主线学习篇: 解决应该按什么顺序学的问题
专题扩展篇: 解决某个方向如何继续深入的问题
案例索引篇: 解决学完之后怎么练、怎么复盘的问题

主线文章尽量保持稳定,方便读者从基础一路读到进阶。案例文章则不强制绑定固定顺序,因为真实案例的更新会受到资料整理、复现环境、脱敏处理、平台审核和实际研究进度影响。把案例按专题归档,比把所有内容都塞进同一套主线编号更适合长期维护。

换句话说,这个专栏不是线性清单,而是学习地图。你可以从头按主线读,也可以按当前遇到的问题反向查:

  1. 参数看起来像 MD5、AES、RSA、SM2,先看密码学专题。
  2. 找不到入口,先看 DevTools、Hook 和调用栈分析。
  3. 代码扣下来跑不动,先看扣代码、依赖追踪和补环境。
  4. 打包代码找不到模块,先看 Webpack 模块逆向。
  5. 混淆代码读不懂,先看混淆原理和 AST 自动化。
  6. 验证流程不稳定,先看验证码状态绑定、Session、轨迹和接口链路。
  7. 环境检测很多,先看浏览器对象、原型链、属性描述符和运行时方案。
  8. 案例太复杂,先回到主线方法论,再选择案例池里相近的专题复盘。

五、总体学习地图

从能力建设角度看,JS 逆向可以拆成下面这条路线:

text 复制代码
基础层
  JavaScript 运行机制、作用域、闭包、this、原型链、属性描述符、Proxy

数据层
  编码、哈希、对称加密、非对称加密、签名、国密算法、序列化差异

调试层
  Network、Sources、XHR/fetch 断点、调用栈、Scope、Hook、反调试识别

复现层
  扣代码、依赖追踪、Node.js 执行、Python 调 JS、本地结果验证

结构层
  Webpack/Vite 打包结构、模块定位、模块导出、签名函数搜索

环境层
  window、document、navigator、screen、location、cookie、localStorage、canvas、原型链补环境

自动化层
  AST 解析、字符串还原、死代码删除、控制流恢复、批量重命名、Hook 模板生成

专题层
  验证码、浏览器指纹、iv8、JSRPC、WASM、JSVMP、m3u8、字体反爬、AI 辅助逆向

实战层
  靶场练习、真实站点复盘、失败原因定位、工程化脚本整理、案例库沉淀

只看某一个案例,很容易把问题理解成这个站点怎么处理。系统学习的价值,是把它抽象成更通用的问题:

text 复制代码
入口怎么找?
参数怎么追?
运行时怎么观察?
依赖怎么补?
结果怎么验证?
失败怎么定位?
经验怎么复用?

六、主线学习路线怎么走?

1. JS 基础与运行机制

这一部分先补 JavaScript 本身。重点不是为了准备面试,而是为了理解逆向中反复出现的运行时问题。

需要重点掌握:

  1. 执行上下文、调用栈、作用域链和闭包。
  2. this 绑定、callapplybind
  3. 原型链、构造函数、classinstanceof
  4. 属性描述符、getter/setter、Object.defineProperty
  5. ProxyReflect、Promise、async/await、事件循环。
  6. BOM、DOM、Node.js、Buffer、模块化和网络通信方式。

这些基础会直接影响后面的扣代码、Hook、补环境和 AST 分析。比如闭包可以隐藏内部状态,this 错误会导致复现结果不一致,原型链和属性描述符不对会被环境检测识别。

2. 密码学与编码专题

JS 逆向里经常遇到编码、摘要、对称加密、非对称加密、数字签名和国密算法。学习这部分不是为了从零发明算法,而是为了能够快速判断代码属于哪一类逻辑。

看到大量位运算、固定常量、S-Box、Base64 字符表、keyivmodepaddingsignencryptdigest 等特征时,要能判断它可能是标准算法、魔改算法,还是业务自定义混淆。

这个专题建议按下面顺序学习:

  1. 编码与序列化:Hex、Base64、URL encode、JSON、CryptoJS WordArray。
  2. 哈希与摘要:MD5、SHA-256、HMAC、SM3。
  3. 对称加密:AES、DES/3DES、RC4、SM4。
  4. 非对称加密:RSA、SM2、PEM、DER、公钥、私钥。
  5. 签名验证:SHA256withRSA、请求头签名、参数排序和时间戳。

3. Chrome DevTools 调试

调试能力是 JS 逆向的核心基本功。不会调试,就只能猜;会调试,才能沿着数据流一步步追踪。

这一部分重点包括:

  1. Network 面板如何看请求链路。
  2. Sources 面板如何下断点。
  3. XHR/fetch 断点、DOM 断点、事件断点。
  4. 条件断点、日志断点和调用栈分析。
  5. Scope 变量观察和运行时状态判断。
  6. 反调试识别与处理思路。

真正分析时,要逐步回答这些问题:参数从哪里来,函数在哪里调用,Cookie 什么时候写入,请求头在哪里设置,验证码状态如何绑定,模块是否懒加载,运行时有没有动态分支。

4. Hook、扣代码与本地复现

Hook 的作用是把黑盒运行过程变成可观察过程。扣代码的目标则是把浏览器里的关键逻辑迁移到本地可验证环境。

这一阶段常见问题包括:

  1. 入口函数找到了,但依赖函数没扣全。
  2. 函数依赖闭包变量,单独复制后状态丢失。
  3. 代码依赖 windowdocumentnavigatorlocationscreen
  4. 浏览器里能跑,Node.js 里报错。
  5. 加密结果能算出来,但请求仍然不通过。
  6. 时间戳、salt、nonce、Cookie、Session 等状态参数没有对齐。

这一部分不会只讲复制函数,而是会强调入口定位、依赖追踪、运行时上下文、本地验证和失败排查。

5. 混淆识别与 AST 自动化

混淆不是不可读,只是增加阅读成本。学习混淆的重点不是手动还原每一行,而是识别模式并选择合适的处理方式。

常见方向包括:

  1. 字符串加密和数组映射。
  2. 控制流平坦化。
  3. 死代码注入。
  4. eval 动态执行。
  5. JSFuck、OB 混淆、反调试和完整性检测。
  6. AST 字符串还原、死代码删除、控制流恢复和批量重命名。

当混淆代码规模变大时,AST 的价值会非常明显。比如几千个 _0x1234('0x1a') 形式的字符串解密调用,手工处理不现实,但用 Babel parser、traverse、generator 可以批量还原。

6. Webpack 与现代前端工程化逆向

现代前端大量使用 Webpack、Vite 等打包工具。很多加密函数不是孤立函数,而是藏在模块系统中,被配置对象、工具函数、状态对象共同调用。

这一阶段会重点理解:

  1. Webpack 打包结构和 __webpack_require__
  2. 模块缓存、模块 ID、模块函数。
  3. 如何搜索关键模块和导出内部函数。
  4. 如何定位签名模块、加密模块和请求封装层。
  5. 如何从打包代码中提取可复现的业务逻辑。

看懂模块系统之后,很多原本看起来杂乱的前端代码,会变成相对清晰的依赖关系图。

7. 补环境、浏览器指纹与运行时方案

补环境是 JS 逆向进阶中的核心能力。前期可以从 缺什么补什么 开始快速验证,但后期要逐步过渡到原型链补环境和框架化补环境。

这一部分重点包括:

  1. 浏览器对象:windowdocumentnavigatorlocationscreencanvas、事件对象。
  2. 存储与状态:Cookie、localStorage、sessionStorage、动态参数和服务端下发值。
  3. 检测点:枚举属性、getter/setter、instanceofObject.prototype.toString.call()、函数 toString 伪装。
  4. 原型链补环境:构造函数、原型对象、属性描述符和对象层级对齐。
  5. 运行时方案:当补环境成本过高时,考虑 iv8、JSRPC 或浏览器运行时调用。

补环境不是简单堆属性。真正难的是判断缺失的环境是否影响分支、是否影响签名结果,以及如何验证补出来的行为和真实浏览器一致。

8. 验证码、WASM、JSVMP、JSRPC、视频流与字体反爬

这些内容属于更靠后的专题,不建议刚入门就直接硬啃。

验证码要理解的不只是图片识别率,还包括 Session 绑定、状态过期、验证接口、轨迹参数和前端加密。WASM 和 JSVMP 则会把关键逻辑从普通 JS 推到更难分析的执行模型里。JSRPC 适合复杂站点、低频数据、强环境依赖、补环境成本过高的场景。视频流分析会涉及 m3u8、ts 分片、播放鉴权和临时 URL。字体反爬则常常需要结合字体映射、CSS 偏移和 Canvas 渲染识别。

这些专题的共同点是:不能只看单段代码,需要把运行链路、状态变化、环境依赖和验证结果放在一起分析。

七、案例索引应该如何维护?

案例文章最容易越写越多,如果全部塞进主线编号,后续维护会很痛苦。这个专栏更适合采用 主线稳定、案例扩展 的结构。

案例索引可以按专题维护:

  1. SpiderDemo 靶场案例:用于练基础方法,变量少、目标明确、干扰可控。
  2. 验证码案例:用于理解识别、状态绑定、轨迹参数和验证接口。
  3. 真实站点密码学案例:用于练标准算法识别、魔改判断和跨语言复现。
  4. Webpack 案例:用于练模块定位、签名函数导出和打包代码拆解。
  5. 补环境案例:用于练浏览器对象、原型链、属性描述符和检测点对齐。
  6. 强环境检测案例:用于理解复杂风控脚本、浏览器指纹和运行时方案取舍。
  7. WASM、JSVMP 与混合防护案例:用于练复杂执行模型和混合链路分析。
  8. 字体反爬、视频流与其他专题:用于沉淀更细分的实战经验。

这样新增案例时,只需要追加到对应分类,不需要重新调整主线顺序。读者也可以按自己的问题直接跳到相近案例,而不是被迫按文章发布时间阅读。

八、这套博客和普通 JS 逆向文章有什么区别?

1. 不是碎片技巧,而是一条系统路线

很多文章只解决一个点:某个参数怎么分析,某个 Cookie 怎么生成,某个验证码流程怎么处理。

这套系列会从 JS 基础、密码学、调试、Hook、扣代码、混淆、Webpack、补环境、AST、AI 辅助、验证码、字体反爬一路组织下来。每一部分都不是孤立的,而是为后面的内容做铺垫。

2. 基础知识会始终站在逆向视角讲

讲闭包,不只是为了知道语法,而是为了理解加密状态为什么藏在函数内部。

讲原型链,不只是为了知道 prototype,而是为了理解补环境为什么要模拟 DOM/BOM 对象层级。

讲属性描述符,不只是为了会用 defineProperty,而是为了理解为什么直接赋值会被检测发现。

讲 Promise 和事件循环,不只是为了写异步代码,而是为了理解请求、定时器、回调和动态参数生成的时机。

3. 会结合靶场和真实案例

靶场适合练基本功,因为变量少、目标明确、干扰可控。

真实案例适合练综合能力,因为它更接近实际环境:代码量大、链路长、状态复杂、失败原因多。

本系列会尽量做到:先用靶场拆方法,再用真实案例练综合。

4. 会覆盖 JS 逆向的新技术和新趋势

后续内容不会只停留在传统扣代码,还会逐步覆盖 AI 辅助逆向、AST 自动化解混淆、JSVMP、WASM、JSRPC、iv8、复杂补环境、验证码模型训练、字体反爬和工程化框架。

JS 逆向一直在变化,专栏内容也应该跟着更新。

5. 不是只给结果,也会记录思路

我更想写清楚的是:为什么这样判断,为什么在这里下断点,为什么这个函数是入口,为什么代码在浏览器能跑但在 Node.js 不能跑,为什么补了某个属性仍然失败,为什么 AI 的解释不能直接相信。

结果很重要,但过程更重要。因为换一个网站之后,能迁移的不是某一段代码,而是分析思路。

九、有了 AI 之后,为什么还要系统学习 JS 逆向?

AI 已经是逆向工作流中非常重要的辅助工具。它可以解释代码、总结函数职责、辅助变量重命名、生成 Hook 初稿、编写 AST 转换脚本、对比 JS 与 Python 复现逻辑,也可以帮助整理调试过程。

但 AI 不是万能答案机。AI 可以根据静态代码推测一段逻辑 看起来像什么,却不一定知道真实运行时发生了什么。

它可能会猜错函数职责,忽略闭包变量,误判 this 指向,看漏动态生成代码,把不可运行的补环境代码说成可运行,或者把标准算法和魔改算法混在一起。

JS 逆向大量依赖运行时观察。很多关键问题不在静态代码里,而在真实执行过程中:请求参数什么时候生成,Cookie 是哪里写入的,验证码状态绑定在哪个 Session,哪个事件触发了加密逻辑,哪个浏览器属性检测导致代码分支变化,哪个模块在运行时被懒加载。

系统学习的价值,是让你更会使用 AI,也更能验证 AI。

不会逆向的人可能只会问:

text 复制代码
帮我分析这段 JS。

稍微系统学习之后,你可以问:

text 复制代码
这段代码里 _0x3ab2 可能是字符串解密函数。请帮我判断它是否有缓存逻辑,入口参数格式是什么,
哪些调用点可以用 AST 批量替换成明文字符串。

这两个问题得到的答案质量完全不同。AI 的效果,很大程度取决于你能不能把问题拆清楚。

基础越扎实,AI 越好用。你知道怎么调试,AI 可以帮你总结调用链;你知道 AST 怎么工作,AI 可以帮你写转换脚本初稿;你知道密码学特征,AI 可以帮你快速判断算法可能性;你知道补环境检测点,AI 可以帮你列出可能缺失的对象和属性。

但方向、判断和验证仍然要靠人。

十、学习建议

如果你刚开始学,建议不要一上来就挑战复杂补环境或大型真实站点。可以按下面顺序推进:

  1. 先补 JavaScript 基础,尤其是闭包、this、原型链、属性描述符、Proxy。
  2. 再学密码学和编码,至少能识别常见摘要、加密和编码特征。
  3. 熟练使用 DevTools,能看请求、下断点、追调用栈。
  4. 学会 Hook,把黑盒运行过程变成可观察过程。
  5. 从靶场开始练扣代码,不要直接被真实案例的复杂链路劝退。
  6. 理解混淆原理,再逐步学习 AST 自动化处理。
  7. 进入 Webpack、补环境、验证码、字体反爬等专题。
  8. 把 AI 作为辅助工具,而不是答案来源。

每学一个阶段,都要尽量做到三件事:

text 复制代码
能解释原理
能调试观察
能本地复现

只看文章不跑代码,很难真正掌握。只复制代码不理解原理,换一个案例就会失效。

十一、更新规则

为了让这篇总纲长期可维护,后续更新会遵循几个原则:

  1. 标题不绑定年份,避免每年都要把最新改一遍。
  2. 主线文章尽量保持固定顺序,方便读者按路线阅读。
  3. 案例文章按专题追加,不强行绑定主线编号。
  4. 已发布文章替换为真实链接,未发布文章保留 待更新
  5. 新增专题优先加入对应分类,确实形成独立方向时再新增小节。
  6. 真实案例会尽量做脱敏和抽象处理,重点记录分析思路、验证方法和踩坑原因。

这个规则可以避免后续目录越改越乱,也能让这篇文章长期作为 CSDN 专栏入口使用。

十二、结语

JS 逆向不是靠几个 Hook 模板、几段补环境代码、几个案例链接就能真正掌握的技术。它更像一条能力链:

text 复制代码
基础决定你能不能看懂代码
调试决定你能不能找到入口
Hook 决定你能不能观察运行时
扣代码决定你能不能本地复现
补环境决定你能不能脱离浏览器运行
AST 决定你能不能批量处理混淆
AI 决定你能不能进一步提升效率
案例复盘决定你能不能把经验迁移到下一个问题

这套专栏会按照这条路线持续更新,结合靶场、真实案例、新技术和 AI 辅助逆向,把 JS 逆向从基础知识一路讲到补环境、AST、验证码、字体反爬和工程化实践。

如果你也在系统学习 JS 逆向,可以先收藏这篇总纲。后续主线文章、专题补充和案例复盘都会持续补到导航里,已经发布的内容会替换成真实链接,未发布的内容会保留在对应专题下,方便按需查阅。

在 AI 时代,系统化文章的价值并不会消失。很多时候,先读一篇整理好的路线、方法论或踩坑复盘,再把明确的问题交给 AI,会比直接把大量混淆代码、报错日志和零散上下文全部丢给 AI 更高效。它可以减少反复解释背景、补充上下文和试错验证的成本,也能让你更容易判断 AI 给出的答案是否可靠。

希望这个总纲能帮助你更清楚地知道:现在应该学什么,遇到问题应该回到哪里补基础,又可以通过哪些案例继续练手。

相关推荐
●VON3 小时前
AtomGit Flutter鸿蒙客户端:主题系统
javascript·flutter·华为·跨平台·harmonyos·鸿蒙
Amo Xiang3 小时前
新华社客户端 —— 3DES 双向加解密
js逆向·python爬虫·cryptojs·3des·前端加密
烬羽3 小时前
JS 单线程为什么不卡?一文吃透同步异步、Event Loop 和 Promise
javascript·面试
葬送的代码人生3 小时前
JavaScript 数组完全指南:从入门到实战
前端·javascript·算法
用户938515635074 小时前
深入理解 JavaScript 同步与异步:从单线程到事件循环与 Promise
前端·javascript
云水一下5 小时前
Vue.js从零到精通系列(一):初识Vue——背景、环境与第一个应用
前端·javascript·vue.js
大大杰哥5 小时前
Vue2学习(1)--了解基本方法与概念
javascript·学习·vue
云水一下5 小时前
Vue.js从零到精通系列(二):响应式核心——ref、reactive、computed与watch
前端·javascript·vue.js
卡布鲁5 小时前
Webpack 核心原理与自定义 Loader/Plugin 实战
前端·javascript