本文记录了对某影视库网站的剧集列表接口以及查询接口的逆向分析过程,主要包括网络请求分析、JS断点调试、加密参数定位以及解密函数的挖掘。
前言
在浏览某影视库网站时,发现其剧集列表加载的数据并非明文返回,而是通过某种加密方式传输。为了深入了解其前端加密逻辑,本文将通过浏览器开发者工具进行逆向分析,还原其请求与解密流程。
一、网络请求分析
打开开发者工具(F12),切换到 Network(网络) 面板,刷新页面后可以看到在「影视库」目录下有多个请求,例如:
movies?slim=1movies?status=want&slim=1
这些都是获取剧集列表的相关请求。

在请求的「发起程序(Initiator) 」或「请求调用堆栈」区域,可以看到关键信息:
listMovies page-25436d0d7e6a853, js:1
4b1d1690-aa94c7f734037000, js:1
4b1d1690-aa94c7f734037000, js:1
...
通过调用堆栈可以定位到发起请求的 JS 文件及具体行号,这是我们逆向的第一突破口。
二、定位 fetch 请求代码
点击调用堆栈中的链接,跳转到对应的源代码位置。在 Sources(源代码)面板中,可以看到如下关键代码:
javascript
fetch('/api/movies', r, void 0).then(ak)

这里有几个关键点:
- 请求路径为
/api/movies r是请求参数(可能包含加密字段)ak是响应处理的回调函数
接下来在该行打上断点,刷新页面触发请求,让程序暂停在该位置。
三、断点调试分析参数
断点命中后,进入调试模式。在右侧的 Debug 面板中可以查看当前作用域内的变量状态、调用堆栈等信息。

通过单步调试(F10 / F11),逐步进入 .then(ak) 的回调函数,观察数据流转过程:
- 接口返回的数据是密文
- 进入
ak函数后,会调用一系列处理逻辑 - 最终将密文转换为明文的剧集列表数据
重点关注回调链中调用的函数,定位到真正进行解密操作的位置。
四、定位解密函数
继续单步跟进,最终找到了一个关键的异步函数 ev(),该函数就是解密后端数据的函数 :

在调试面板中标注了: 这就是加密函数
该函数大致结构如下:
javascript
async function ev() {
// 接收加密的响应数据
// 执行解密逻辑(可能使用 AES / RSA / 自定义算法)
// 返回明文 JSON 数据
}
在断点处可以查看:
- 入参(密文字符串)
- 出参(明文对象,包含剧集列表字段如
title、episodes、status等)
代码运行截图

五、总结
逆向流程回顾
| 步骤 | 操作 | 关键点 |
|---|---|---|
| 1 | Network 抓包 | 定位 /api/movies 请求及调用堆栈 |
| 2 | Sources 查看源码 | 找到 fetch('/api/movies', r, void 0).then(ak) |
| 3 | 断点调试 | 分析请求参数 r 和回调 ak |
| 4 | 单步跟进 | 定位到解密函数 ev() |
| 5 | 查看入参/出参 | 确认密文→明文的转换逻辑 |
声明:本文仅供学习交流使用,请勿用于非法用途。尊重网站的版权和服务条款。