☰
某音a_bogus参数加密分析
2026/11/3 10:37:42 网站建设 项目流程

注意:本文仅用于技术学习与交流,请勿用于非法爬取商业数据,所有后果自负。

一、网页分析
通过网页抓包发现接口请求参数中出现a_bogus参数以及很多接口都有这个值,如果独立用普通或者其他语言发出请求 会发现如果这个值设置为空都会导致请求失败二、找a_bogus
1. 定位加密位置
1.1 全局搜索失效->用XHR 断点。

1.2 使用 XHR 断点
在 Sources 到 XHR/fetch Breakpoints,点击 +,输入接口路径如: aweme/v1/web/general/search/stream/。

1.3 分析堆栈调用
断下来后,查看右侧的 Call Stack(调用堆栈)。

寻找 a_bogus在堆栈中有值与无值之前的栈:
这两个位置之间的某个函数,就是加密函数。





可以看出执行到n时里面的arguments中arguments[0]还没有生成这个值。进入到X函数发现下一步需要进入到d函数,可以知道X函数也还没有生成。进入d函数可以发现 作用域(Scope)也有url相关的 可以看到已经有值生成了。window.fetch里面可以发现有值生成了。因此根据堆栈分析这个参数生成的位置就在函数d中以及跟apply有关
1.4 日志断点与条件断点-插桩点
a. 在apply处 写下日志断点

'd,e:',d,e


可以发现这里有这个值是在e中。接下来分析e是怎么生成的
b.条件断点

e.length==2&&e[0]=='a_bogus'


现在开始追溯e的生成
通过作用域分析发现目前E是的值与e[1]中一致,以及接着在作用域中分析发现v里面也有。因此现在对这些地方 在浏览器中进行断点

下面是断点的几处位置:
a. 根据之前分析的apply处先断点
b . 寻找var e =的e初始生成的地方
c. 分析在e初始生成的地方 循环t的值


发现e初始化生成的地方t==0 前一步是73。因此 t断点处需要修改成条件断点 不在进行日志打印。
进入73后 会发现进入以及会发现这里的Z[x]就是v数组写入的地方因此需要在这里断点

接下来分析这个值是怎么生成的,断住e初始化的地方以及日志打印t可以发现会进入t=74
可以发现这里的E就是生成的值。

1.5 补环境
找到核心函数后,将 bdms.js 文件下载到本地。
之后运行 缺什么就补什么环境。
三、结果展示

如果有定制需求,也欢迎直接私信我。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询