首页游戏资讯【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向分析

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向分析

misa2 06-04 4次浏览 0条评论

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

声明

本文章中所有内容仅供进修交换利用,不消于其他任何目标,不供给完全代码,挠包内容、灵敏网址、数据接口等均已做脱敏处置,严禁用于贸易用处和不法用处,不然由此产生的一切后果均与做者无关!

本文章未经答应制止转载,制止任何修改后二次传布,私行利用本文讲解的手艺而招致的任何不测,做者均不负责,如有侵权,请在公家号【K哥爬虫】联络做者立即删除!

逆向目标

目标:某验四代消消乐、五子棋验证码,w 参数逆向及算法阐发

行为验证 4.0 demo:aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20v

加密算法:RSA、AES、MD5

通信流程

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

消消乐流程阐发

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

展开全文

进进网页后,F12 停止挠包,抉择消消乐验证码,挠包到 load 接口:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

captcha_id:验证码 id,固定值,四代滑块文章中有讲;

challenge:动态改变,由 gtc4.js 文件生成,四代滑块文章中有讲;

client_type:web 端;

risk_type:验证码类型,例如滑块为 slide,无感为 ai,消消乐为 match;

lang:语言;

callback:回调参数,geetest_ + 时间戳。

响应预览中返回的关键内容如下:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

captcha_type:验证码类型;

gct_path:gct4 文件途径;

lot_number:生成 pow_msg、w 的关键参数;

payload:verify 恳求参数;

datetime:ISO 8601 扩展格局的日期,生成 pow_msg 的关键参数;

process_token:verify 恳求参数;

ques:消消乐矩阵(3x3),每个数字代表一种颜色,将三个不异数字换到统一列或统一行即可通过。

点击验证按钮,弹出消消乐验证码,挪动图案之后,挠包到 verify 校验接口:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

captcha_id:与 load 恳求头中的 captcha_id 一致;

client_type:web 端;

lot_number:load 响应返回;

risk_type:验证码类型;

payload:load 响应返回;

process_token:load 响应返回;

payload_protocol:1;

pt:1;

w:加密参数,由轨迹、passtime、userresponse 等参数加密得到;

callback:回调参数,geetest_ + 时间戳。

响应预览中返回的内容如下,result 值为 success 即校验通过,fail 即校验失败,照顾 seccode 下的五个参数恳求 login 接口,即可登录胜利:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

逆向阐发

w 参数

四代的根本流程都是差不多的,间接搜刮特征值 "\u0077" 即可定位到 w 参数生成的位置,先全局搜刮 "\u0077",找到对应的 js 文件,点击进往格局化后,再 ctrl + f 部分搜刮定位关键位置:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

在第 6251 行打下断点,挪动图案即会断住,r 即 w 参数的值:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

跟进 r 生成的位置,其定义在第 6237 行,能够看到加密体例与四代滑块是一样的:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

独一差别的就是 e 中参数值的构成,以下是四代滑块与消消乐的比照:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

能够看到差别点在于四代滑块 e 中参数包罗 setLeft(缺口间隔)、track(滑动轨迹),天然消消乐是没有的,userresponse 在滑块中是数值计算,而消消乐中是交换的两个图片的坐标,举个例子:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

上图中的验证码,接口返回的 ques 值为:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

ques[0]、ques[1]、ques[2] 别离对应验证码的第0列、第1列、第2列,重视是列,不是行!而我们只需要关心 ques 数组里的交换即可,准确应该交换第0行第1列和第0行第0列,那么 userresponse 的值应该为:[[0, 1], [0, 0]]。

其他参数值的生成都是一样的体例,详细能够阅读 K 哥往期文章《【验证码逆向专栏】某验四代滑块验证码逆向阐发》,那里就不再反复写了。

消消乐成果验证

只要 JS 和交换的坐标没问题,胜利率就为 100%。

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

五子棋流程阐发

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

五子棋的流程跟消消乐一样,进进网页后,F12 停止挠包,抉择五子棋验证码,挠包到 load 接口:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

captcha_id:验证码 id,固定值,四代滑块文章中有讲;

challenge:动态改变,由 gtc4.js 文件生成,四代滑块文章中有讲;

client_type:web 端;

risk_type:验证码类型,例如滑块为 slide,无感为 ai,五子棋为 winlinze;

lang:语言;

callback:回调参数,geetest_ + 时间戳。

响应预览中返回的关键内容如下:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

captcha_type:验证码类型;

gct_path:gct4 文件途径;

lot_number:生成 pow_msg、w 的关键参数;

payload:verify 恳求参数;

datetime:ISO 8601 扩展格局的日期,生成 pow_msg 的关键参数;

process_token:verify 恳求参数;

ques:五子棋矩阵(5x5),每个数字代表一种颜色,0 表达空位,将五个不异数字换到统一列、统一行或对角线上即可通过。

其他的与消消乐是一样的,e 参数如下,此中 userresponse 就是需要交换的两个棋子的坐标:

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

五子棋成果验证

同样的,只要 JS 和交换的坐标没问题,胜利率就为 100%。

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

五子棋和消消乐算法

以下是消消乐和五子棋坐标交换的 Python 算法,重视是交换坐标的算法哟,不是全数的代码哈,消消乐可能30来行,五子棋可能60来行,仍是很简单的,有需要的能够往k哥爬虫公家号看看。

【验证码逆向专栏】某验四代五子棋、消消乐验证码逆向阐发

消消乐
古老师倒霉的一天,奋豆探看病师送师娘,小庸医竟在大脑消消乐! 63岁冯巩一家出游!与哥哥姐姐五官如复制粘贴,网友调侃似消消乐
相关内容
发表评论

游客 回复需填写必要信息