一、前言
国际惯例,先看下效果:
1.生成 anti_content
参数:
2.通过程序发送弹幕:能
3.直播间公屏显示出弹幕:
效果非常地完美!
接下来,本文着重介绍:anti_content参数的逆向分析与算法还原
二、提取相关js
教程开始之前,请允许我先叠个甲:
“作者声明:文章仅供学习交流与参考!严禁用于任何商业与非法用途!否则由此产生的一切后果均与作者无关!如有侵权,请联系作者本人进行删除!”
好了,咱们的教程,正式开始
其实PDD的anti_content
参数算法,是一直都在变的,有0as
、0aq
、0ap
等等开头的,长度从2/300位一直到7/800位的都有,但常言道:万变不离其宗
,只要看懂本文的方法,后面再怎么变,也都问题不大。
随便找个带
anti_content
的请求,点启动器
,然后跟进去看
对,没错,你会看到我们的老朋友,
webpack加载器
最后你的目光会焦距到
fbeZ
、8oxB
等关键字上,把相关js统统扣下来
三、补环境
这说来就话长了,这里简单介绍下js中的代理函数Proxy的用法,Proxy可以监听传入对象的 get 和 set 的 key 和 value。
通过对环境检测频繁的window、document等环境变量进行代理,达到自动输出目前代码所检测的环境及方法。
function envProxy(object){
return new Proxy(object, {
set(target, property, value){
console.log("set: ", target, property, value);
return Reflect.set(...arguments);
},
get(target, property, receiver){
console.log("get: ", target, property, receiver);
return target[property];
}
});
}
📢 这里说一句,我在平时的积累中,形成了一个
万能补环境框架
,可以帮你节省大量的工作和时间,主要功能有:
- js代码扔进去会自动显示相关调用情况,并补充上环境代码
- 浏览器环境已补充有2万余行代码,基本覆盖了绝大多数的环境要求
如果你有想法,欢迎可以点击文章最下方的 微信名片
进行咨询~
四、封装入口
最后封装一个方法,用于便捷调用,例如:
function get_anti_content() {
return fn({ serverTime: new Date().getTime() }).messagePack();
}
console.log(get_anti_content())
最终调用该方法的效果
Enjoy it !!
有什么交流和问题,请大家在评论区踊跃发言~
都看到这里了,各位帅哥/美女,不管有用没用,都帮忙点个赞呗,❤️谢谢~
-
Author
- 吴所畏惧 2025.02.27