网易易盾破解补充篇
之前写了两篇易盾破解的文章,分别讲了fp、cb、data
等参数的破解,以及额外的图像识别,但是实际上整个破解过程并不完整,我在文章中有提到watchman
这块没有破解,这篇文章对此进行补充。
acToken
我在之前的文章中一直把acToken
参数当做定值来处理的,但是实际上其并不是定值,我们先来看下其生成过程,点击check
请求的调用栈(get请求是没有acToken
参数的)
`长路漫漫,唯剑作伴`
本文章参考《python深度学习》,看这部分内容之前已经学习过吴恩达机器学习视频的大部分内容,所以看这一章非常简单,易于理解,仅做简单的重点整理。
监督学习是目前最常见的机器学习类型。给定一组样本(通常由人工标注),它可以学会将 输入数据映射到已知目标[也叫标注(annotation)]。
虽然监督学习主要包括分类和回归,但还有更多的奇特变体,主要包括如下几种。
无监督学习是指在没有目标的情况下寻找输入数据的有趣变换,其目的在于数据可视化、 数据压缩、数据去噪或更好地理解数据中的相关性。
降维(dimensionality reduction)和聚类(clustering)都是众所周知的无监督学习方法。
本文章参考《python深度学习》
回归问题预测一个连续值而不是离散的标签,例如,根据气象数据 预测明天的气温,或者根据软件说明书预测完成软件项目所需要的时间。
注意:不要将回归问题与logistic回归算法混为一谈;logistic回归不是回归算法,而是分类算法
预测 20 世纪 70 年代中期波士顿郊区房屋价格的中位数,已知当时郊区的一些数 据点,比如犯罪率、当地房产税率等。这里用到的数据集相对较少,只有 506 个,分为 404 个训练样本和 102 个测试样本。输入数据的 每个特征(比如犯罪率)都有不同的取值范围。例如,有些特性是比例,取值范围为 0~1;有 的取值范围为 1~12;还有的取值范围为 0~100,等等。
1 | from keras.datasets import boston_housing |
如你所见,我们有 404 个训练样本和 102 个测试样本,每个样本都有 13 个数值特征,比如 人均犯罪率、每个住宅的平均房间数、高速公路可达性等。 目标是房屋价格的中位数,单位是千美元。
Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。
一般cookie所具有的属性,包括:
Domain:域,表示当前cookie所属于哪个域或子域下面。
对于服务器返回的Set-Cookie中,如果没有指定Domain的值,那么其Domain的值是默认为当前所提交的http
的请求所对应的主域名的。比如访问 http://www.example.com,返回一个cookie,没有指名domain值,那么其为值为默认的www.example.com
。
Path:表示cookie的所属路径。
Expire time/Max-age:表示了cookie的有效期。expire的值,是一个时间,过了这个时间,该cookie就失效了。或者是用max-age指定当前cookie是在多长时间之后而失效。如果服务器返回的一个cookie,没有指定其expire time,那么表明此cookie有效期只是当前的session,即是session cookie,当前session会话结束后,就过期了。对应的,当关闭(浏览器中)该页面的时候,此cookie就应该被浏览器所删除了。
secure:表示该cookie只能用https
传输。一般用于包含认证信息的cookie,要求传输此cookie的时候,必须用https
传输。
httponly
:表示此cookie必须用于http
或https
传输。这意味着,浏览器脚本,比如javascript
中,是不允许访问操作此cookie的。
本文主要参考以下文章:
这两篇文章都是同一位大佬所写,第一篇是利用华为云的一个深度学习平台做的(无需做任何编码工作),第二篇是通过PyTorch
来做的,要自己代码实现。我这里主要参考第二篇文章,也直接在这里把作者使用到github
项目列出来:
因为我在次之前接触过一点Keras
,还没有接触过PyTorch
,所以倾向于利用Keras
来解决此问题,于是我就查找了keras-yolov3
的相关资料,主要参考这两篇博客:
上面那篇博客过于具体过程讲的比较详细,一般按照教程来就可以,下面那篇是我遇到一些问题时找到的,关于这个项目的解析比较详细,可以帮助我们理解这个项目。
这篇博客主要使用这个github
项目:
参考文章
近期在破解网易易盾的滑动验证码,涉及到缺口识别的问题时,由于没有经验,上网查了一些资料,发现一个比较火的方式是利用opencv
的模板匹配。
模板匹配是一种在较大图像中搜索和查找模板图像位置的方法。OpenCV
提供了一个函数cv2.matchTemplate()
。它只是在输入图像上滑动模板图像(如在2D
卷积中),并比较模板图像下的输入图像的模板和补丁。在OpenCV
中实现了几种比较方法。它返回一个灰度图像,其中每个像素表示该像素的邻域与模板匹配的程度。
假设输入图像的大小(W*H
)且模板图像的大小(w*h
),则输出图像的大小为(W-w + 1,H-h + 1)。获得结果后,可以使用cv2.minMaxLoc()
函数查找最大/最小值的位置。将其作为矩形的左上角,并将(w,h)作为矩形的宽度和高度。那个矩形是你的模板区域匹配后得到的区域。
接着上篇文章,我们在这篇文章中将会介绍,如何获取验证码和token
,然后计算验证码缺口距离以及模拟轨迹生成等操作。
先看下获取验证码的请求(get请求):
url=https://c.dun.163.com/api/v2/get?
,参数如下:
1 | id: 07e2387ab53a4d6f930b8d9a9be71bdf |
需要动态变化的参数只有fp
参数和cb
参数,这里cb
参数生成方式其实与我们上篇中的cb
是一样的,所以重点是fp
参数,也就是fingerprint(指纹)。