DDR爱好者之家 Design By 杰米

@TOC

collect明文处理

上一篇已经跟到明文的拼接函数,接下来看看get函数的返回值,对什么进行拼接。

某讯滑块验证码反汇编分析-第三章
在这一次运行中,第一次get返回的是一个10,是怎么计算出来的呢?

某讯滑块验证码反汇编分析-第三章
第一个是模块8返回的,看看里面是什么

某讯滑块验证码反汇编分析-第三章
模块8又是调用的模块9

某讯滑块验证码反汇编分析-第三章
模块9就是环境检测的函数了,做了一些与环境相关的运算,最终返回10为结果。一般来说不需要太理会中间是怎么计算的,只要知道检测正确的返回值是多少,然后固定这个正确的值就可以了,那么接着下一个get

某讯滑块验证码反汇编分析-第三章

第二个get的返回值是一个字符串,看看又是怎么运算出来

某讯滑块验证码反汇编分析-第三章
实际这是一个固定值,没有任何的运算。如此类推,一直把37个get函数都执行,然后把返回值拼接

某讯滑块验证码反汇编分析-第三章
拼接完成后调用了【4181】函数

某讯滑块验证码反汇编分析-第三章
这里就可以看到待加密的明文字符串,然后这里会调用多次,进行分段加密,结尾是 "]," 的时候,才是最后一次

某讯滑块验证码反汇编分析-第三章
【4181】函数可以理解为一个填充的函数,然后就调用【10009】函数进行加密

某讯滑块验证码反汇编分析-第三章
加密函数又调用了7701函数

某讯滑块验证码反汇编分析-第三章

这里看到一些特殊的字符串,实际是密钥的初始化

某讯滑块验证码反汇编分析-第三章
可以看出是一个把【 5】魔改为【> 5】的tea加密,密钥是4个int,也就是16字节。在几天,或者十几天内,看起来是不变的,那么可以用ast动态还原出密钥,也可以手动获取key用它个一段时间。在发文时的key为【QiPXNgNXhnjVfFhT】。既然加密知道了,tea是对称加密,用相同的密钥可以解密出密文,那么我们那网页生成的参数试试

某讯滑块验证码反汇编分析-第三章
非常漂亮的解密出明文,后面只要自己构造参数,然后加密就可以得到可用的collect参数。

其中计算滑块距离使用的是ddddocr三方库
距离生成轨迹使用帖子【极验反爬虫防护分析之slide验证方式下图片的处理及滑动轨迹的生成思路】提供的帖子

vData明文处理

经过前面的铺垫,部分重复的内容会适当跳过。需要发送请求,还需要一个vData,而这个参数是在另外一个js文件中,

某讯滑块验证码反汇编分析-第三章
可以看到生成vData的js也是一个webpack的代码

某讯滑块验证码反汇编分析-第三章
直接查找send方法,绑定的是【20539】函数,里面实际调用的【getCaptchaData】这个函数,地址是【22317】

某讯滑块验证码反汇编分析-第三章
明文就是这一个对象,里面包含8个固定的键名,除了【key】这个键以外,其他的值都是固定的。key的计算就是把【tlg】中的每一个值看做下标,然后在【sess】上取值。一般来说collect都是上千位,所以tlg是四位数,所以key的值也是四位。

某讯滑块验证码反汇编分析-第三章
拼接好了以后就进入【encryptData】方法

某讯滑块验证码反汇编分析-第三章
首先是进行填充到16的倍数

某讯滑块验证码反汇编分析-第三章
然后是打乱字符串顺序,最后就是那个魔改的tea加密,密钥固定为【34e2c8f07b5169ad】

某讯滑块验证码反汇编分析-第三章

最后的encode是一个base64编码,只是编码表被修改了,其他都是一样的。逻辑理顺了之后,使用python跑起来试试

某讯滑块验证码反汇编分析-第三章
完美!!!

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米