作者:B站教程、GitHub 开源与 CSDN/Blog 实战综合整理
适用场景:抖音网页端接口(搜索、评论、首页、详情页等)请求参数加密
警告:本教程仅用于学习与技术研究,禁止用于非法爬虫或商业违规用途。抖音算法迭代频繁,请以最新版本为准。
1. 什么是 a_bogus?
a_bogus 是字节系(抖音 / 今日头条)网页端请求中的一个关键防爬参数。
它的核心作用:
- 校验请求是否合法
- 判断是否为真实浏览器环境
- 对抗自动化脚本与爬虫
- 验证用户行为与设备指纹
通常会对:
- URL 参数
- 浏览器环境
- 设备信息
- 指纹数据
- 时间戳
- Token
进行混合加密。
生成后的结果通常类似:
QfUnDqywQqxxxxxxxxxxxxxxxx
典型请求:
https://www.douyin.com/aweme/v1/web/discover/search/?...&a_bogus=xxxx
2. a_bogus 的核心特点
2.1 JSVMP 虚拟机保护
抖音新版大量使用:
- JSVMP
- VM Protect
- 字节码解释器
传统 JS 已经不再直接暴露核心逻辑。
特点:
- 代码高度混淆
- 函数名随机化
- 指令虚拟化
- 动态执行
- AST 难直接还原
2.2 常见加密流程
目前主流版本通常包含:
参数拼接
↓
SM3 哈希
↓
数组转序
↓
魔改 Base64
↓
生成 a_bogus
常见涉及:
- SM3
- 自定义字符表
- Base64 变种
- 位运算
- 时间扰动
- 浏览器指纹
2.3 算法版本经常更新
常见版本:
bdms_1.0.1.19_fix
bdms_1.0.1.25
bdms_xxx.js
字节会频繁更新:
- 参数顺序
- 混淆逻辑
- VM 指令
- 加密入口
所以:
'昨天还能跑,今天突然失效' 是非常正常的。
3. 如何定位 a_bogus 生成位置?
3.1 打开浏览器调试
进入:
抖音网页版
打开:
F12 → DevTools
3.2 找到带 a_bogus 的请求
进入:

