登山则情满于山,观海则意溢于海。这篇文章主要讲述抖音__ac_signature相关的知识,希望能为你提供帮助。
【抖音__ac_signature】主页中有一个IP的信息,但是请求需要__ac_nonce和__ac_signature。
__ac_nonce是初次请求后服务端返回的,本文分析一下__ac_signature怎么来的。
用chrome 插件去定位 cookie的位置
var code = function()
var org = document.cookie.__lookupSetter__(cookie);
document.__defineSetter__("cookie",function(cookie)
if(cookie.indexOf(__ac_signature)> -1)
debugger;
org = cookie;
);
document.__defineGetter__("cookie",function()return org; );
var script = document.createElement(script);
script.textContent = ( + code + )();
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);
清空cookie,刷新后断到点
往回调试一步。
可以看到__ac_signature怎么来的。
进来后,先断个点。这样后续把插件关掉后,再清空cookie刷新页面可以直接进来。
补环境把该文件的所有代码复制到本地运行。
会报错:
补referer, DOM属性document.referrer
再运行,报错ReferenceError: window is not defined ,补一个window 。
继续运行报错:
到对应位置断点,看看S是什么,这里发现S是各种对象,那问题不在S,缺了其他环境。
往下看,最后的参数里面有很多属性,要补的和浏览器一样,补上后就没有该错误了。
最后报错:undefined (reading ‘init’)
说明window中没有byted_acrawler,追代码找到k方法中,最后是放在this中,那把这里的this改成window
再次执行,成功生成。
目前比较短,长的把cookie加进去就行了。
经测试,长短不影响请求。
?
过几天再把代码贴上= =
推荐阅读
- Java基础 (算术,赋值,逻辑,位,三元 运算符)
- 图像分割——基于二维灰度直方图的阈值处理
- 力扣——求一组字符中的第一个回文字符
- Nacos2.0 配置中心管理,动态配置更新
- Flink流处理API大合集(掌握所有flink流处理API技术,看这一篇就够了)
- maven仓库类型说明hosted/proxy/group
- 解决secureFX中出现中文乱码问题
- 既然JVM有Full GC,为什么还会出现OutOfMemoryError?
- centos修改主机名