这段时间我一直忙于工作,在这篇文章中我会再谈一次头条_signature
加密方式与以往没有变化,请查看以前的文章:
3359 blog.csdn.net/QQ _ 43454410/article/details/119323201
下面看下本地实现
1 .直接复制并本地运行解密的js并报告错误
开头错了。 大概的意思是有窗口就使用窗口,没有的话就使用全局。
注:全局只在节点环境中。 我本地的js调试工具是v8环境
那我们自己给窗口赋值。 “‘window=this”只是v8的写法。
接下来
遇到这样的问题,可以在网站顶端与js加密代码相同的地方打桩调试,看到S[R]=S[R][A]是什么
另一种方法是打开站点https://developer.Mozilla.org/zh-cn/search并尝试搜索referrer
document对象下的属性。 在浏览器里看看吧
接下来,在本地js代码中写入document对象
请尝试加载document={ referrer : ' https://www.toutiao.com/' }
发现成功了!
接下来,我们来看看如何生成_signature
其实是window.byted _ acrawler.sign ({ URL :‘https://www.toutiao.com/toutiao/API/PC/info’} )。
继续本地实施
不用说herf是什么吧。 直接
在本地添加同上,然后继续
您可以看到以上所有错误都发生在此处290多行,并且可以看到此处是环境检查的位置
现在,让我们在网上看看那是什么
可以看到很多浏览器环境对象。window,document,navigator, location
补充环境基本上以这些对象为中心,
没错,这是大人物嘴里缺了什么东西,简单的四个字,进细就复杂了,缠绕在原型链条上
这里简单补上就值钱了
补充的环境
窗口=this; document={ referrer : ' https://www.toutiao.com/' }; location={ href : ' https://www.toutiao.com/wid=1635125685888 ',protocol: 'https: ',}; navigator={用户代理: ' Mozilla/5.0 (windows nt 10.0; 双赢64; x64 ) appleWebKit/537.36(khtml,like Gecko ) chrome/94.0.4606.54 safari/537.36 ),}; 那么,接下来很多人说的是为什么这么短的理由
以前获取浏览器环境时,在离开_signature之前获取过一次cookie
所以,必须添加cookie。 (在目标网站上获取。 )
请注意添加饼干的位置。 放在顶部时,中间的js可能会删除或更改饼干的值
总结::
总体上很简单。 另外,如果在本地成功生成_signature,但赋值请求无法获得所需的数据,那就是检测到了您的环境。 只能仔细寻找短缺的环境,重新弥补