爬虫逆向抖音新版signature分析案例
作者:考古学家lx 发布时间:2021-06-23 00:15:59
因为老策略一直能用,一直没有看新版signature。本文做一下分析记录。
断点调试
堆栈进来之后,url中signature已经有了
shift+f11 往前找,找到了还没signature的位置,然后断点
重新触发请求
这里目前是没有signature的
F9 F11都行,单步往下走
过了一会儿能看到g.send(d)
这里是XMLHttpRequest 的 send 请求。
send下一步到_0x2856c7方法
这里进行处理之后再返回到 XMLHttpRequest.prototype.send ,此时有了signature
流程分析
经过仔细调试,定位点可在 8988.384447be.js 中的v(n)方法处,更方便协助分析。
从这F11能看到具体逻辑
d(t)处理完之后到 38413: function(e) 这里
然后继续走,到request
经过调试,可以看出在request中对请求的method、url的params、headers的user-agent和cookie进行了处理。
然后到ob混淆的webmssdk中进行计算
Bogus的位置和signature的位置 如下:
Bogus = _0x5342a6;
signature = _0x3564d7;
各种处理后,再返回到 XMLHttpRequest.prototype.send中的 nativeXMLHttpRequestSend,此时已经有了signature。
流程总结
所以最终的流程是XMLHttpRequest触发请求,此时走了自定义的send,到f.request中先处理下参数,然后到webmssdk计算,最后返回到XMLHttpRequestSend完成正常Http请求。
还原的话,大家可以按照流程进行分析,webmssdk可以解混淆一下放到控制台调试,自行补全参数调用。
来源:https://blog.csdn.net/weixin_43582101/article/details/122142592


猜你喜欢
- 更新:优化了代码,理由numpy的ufunc函数功能替换了之前的双重for循环,测试图片大小为692*1024*3,优化前运行时间为6.9s
- 前言本文参考PyTorch官网的教程,分为五个基本模块来介绍PyTorch。为了避免文章过长,这五个模块分别在五篇博文中介绍。Part3:使
- 1 简介在日常运行程序的过程中常常涉及到循环迭代过程,对于执行时间很短的程序来说倒无所谓,但对于运行过程有明显耗时的涉及循环迭代的程序,为其
- 1 HSV上下限颜色的HSV上下限如下表:2 追踪单个颜色import cv2 as cvimport numpy as npcap = c
- 为了实现项目中的搜索功能,我们使用的是全文检索框架haystack+搜索引擎whoosh+中文分词包jieba安装和配置安装所需包pip i
- 一份完全按照李航<<统计学习方法>>介绍的HMM代码,供大家参考,具体内容如下#coding=utf8 '&
- 前情提要:作为刚入门机器视觉的小伙伴,第一节课学到机器视觉语法时觉得很难理解,很多人家的经验,我发现都千篇一律,功能函数没解析,参数不讲解,
- Python版本是2.7.9,在win8上测试成功,就是抓取有点慢,本来想用多线程的,有事就罢了。模板之家的网站上的url参数与页数不匹配,
- 如下所示:import ioimport torchimport torch.onnxfrom models.C3AEModel impor
- 一、建造者模式建造者模式,顾名思义类似于建筑工人,他们按照有条理的施工顺序(e.g. 打桩 => 浇筑框架 => 砌墙 =>
- 一、连接MYSQL格式: mysql -h主机地址 -u用户名 -p用户密码1、 连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录
- 判断python中的一个字符串是否为空,可以使用如下方法1、使用字符串长度判断len(s) ==0 则字符串为空#!/user/local/
- 总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。python没有二进制类型,但可以存储二进
- 有开发的同事反映远程登录SQL Server操作报错,索引超出了数组界限等如下图线上数据库版本为SQL Server2012 R2,检查后发
- 本文实例讲述了Python序列对象与String类型内置方法。分享给大家供大家参考,具体如下:前言在Python数据结构篇中介绍了Pytho
- 在IDLE下清屏:#网上有些先定义函数,再?print("\n" * 100)输出一百个换行的方法有点扯淡,跟连按回车没
- 1.使用测量工具,量化性能才能改进性能,常用的timeit和memory_profiler,此外还有profile、cProfile、hot
- 概述你可能在JavaScript项目中都用了console.log。这是一种查看变量的值或程序运行中发生的事情的便捷方法。但是JavaScr
- json.dumps将一个Python数据结构转换为JSONimport jsondata = { 'na
- 网关是什么简单来说,网关就是暴露给外部的请求入口。就和门卫一样,外面的人想要进来,必须要经过门卫。当然,网关并不一定是必须的,后端服务通过h