赞
踩
目录
打开一个直播间,F12查看网络面板,可以看到websocket的url,简单分析三个关键参数room_id,user_unique_id,signature,如下图
这两个参数都在房间号首页请求的html里,直接正则表达式获取就行了,如下图
然而postman直接get首页,却返回的一段加密的html,还有两个cookie:__ac_nonce和ttwid,如下图
尝试寻找原因:浏览器无痕模式保留日志跟踪一下请求,发现访问了两次首页,如下图
第一次返回加密的html,返回了两个的Cookie:__ac_nonce和ttwid
第二次返回了真实房间数据,请求时,发送了__ac_nonce和__ac_signature两个Cookie,很明显,应该是第一次返回的html有相关的js,生成了__ac_signature这个cookie
查看加密的html里的js,果然是根据__ac_nonce生成__ac_signature的cookie,如下图。
关键就是解密window.byted_acrawler.sign()函数计算结果值就可以了。__ac_nonce应该是个随机数,实测用一个固定值就行,但每次生成的__ac_signature不一样
js里查找生成signature的代码,如下图,简单概括:e里存着数据,t是数组,循环t从e里按顺序取值然后拼接一个字符串o,用o进行MD5得到a,然后调用window.byted_acrawler.frontierSign()函数计算出signature的值
其中数组t的值如下,关键值room_id,user_unique_id在上面已经已经获取到,很容易生成MD5
["live_id", "aid", "version_code"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。