剖析一下“抢茅台“脚本底层逻辑
创始人
2024-02-04 23:57:38
0

本文作者:梁冬冬

前言今天你撸茅台了么👇? 撸茅台已经成为社会现象🙌,茶余饭后讨论的最佳实践😇

2022年双十一大促已经完美收官,兄弟姐妹克服种种困难与挑战… 备战的会议室忙碌中带着紧张,当峰值过后的喜悦不言而喻,今年备战室里听着对面的兄弟讲述了他抢茅台的经过,以及对马上来临的整点茅台活动期待,我也立马参与进去,但是…没抢到😭, 带着种种的疑问,百度了下网上抢茅台的种种手段与方法,发现里面的猫腻还真不少,同时作为风险人也想不断的通过各种技术手段识别发现风险,让羊毛党无处躲藏;也许,竞争对手比你想象中要更加的强大, 今天就带你走近抢茅台的脚本,领略下TA们有趣的灵魂;

下面的列表是我总结网络上普遍存在的一些抢购的方式,这些方式的共性是:模拟单人或多人的操作行为,在最短的时间内完成抢购流程;

类型方式热度先进性
后端接口脚本http协议👍👍👍
webUI脚本webdriver👍👍👍👍👍👍👍👍
appUI脚本webdriver and 无障碍模式👍👍👍👍👍👍👍👍
adb命令脚本adb协议👍👍👍👍👍👍👍👍

一、webUI脚本解析:

下面是一段网络上比较常见的某宝的一种抢茅台的脚本,底层逻辑是: 模拟人点击操作路径,通过脚本重放,循环实现定时、自动化、多并发等操作,最终实现代码替代人工操作抢走商品;

像人一样控制浏览器:脚本里是基于webdriver的一种浏览器驱动方式,可以通过驱动来控制浏览器实施控制页面操作,例如里面使用频繁的find_elemnt_by_id是通过页面ID识别的(ID可以通过控制台元素定位获取到),find_element_by_link_text通过精准匹配页面上的文案,是辨识元素的一种方式;**click()**是识别元素后的鼠标点击动作;

像人一样进入登录:脚本里面的run_driver方法,里面调用了login_in方法,里面的逻辑大概是模拟用户输入用户名+密码,点击登录按钮后,实现登录;

• **像人一样的循环抢购商品:**抢购茅台会有对应的抢购时间,这里的times就是作者设定的抢购时间,循环体里面会判断当前时间是否大于等于times时间,如果出现大于等于后,会进入到第二个循环体,寻找下单的按钮然后进行点击操作;在点击成功后继续进入到提交订单页面,通过link_text识别文案,进行点击操作,最终成功抢购商品成功,进入到待付款页面;else,如果抢购后无法结算,脚本会通过驱动重新打开商品页面,然后选择商品,重新走判断时间的逻辑,以上;

二、后端接口脚本解析

下面的代码是之前GitHub很火的抢购京东飞天茅台jd_seckill脚本,一度被很多人使用(现项目已经停止),底层逻辑:绕过前端UI,整体流程通过协议接口层串联,可以通过自定义控制抢购的速度,最终实现代码替代人工操作抢走商品;

• **后端接口串联整体流程实现登录:**通过登录访问二维码页面、获取Token票据、校验票据,获取cookies

串联接口实现抢购流程:点击“抢购”按钮后,会有两次跳转302,最后达到订单结算页面,这里返回第一次跳转后的URL,作为商品的抢购链接;

三、APPUI脚本 以及 adb命令方式 解析

APPUI脚本方式 底层逻辑是:通过手机端(安卓、IOS或模拟器等)通过UI自动化工具或adb命令的方式控制app以及webview来模拟人操作,实施抢购的过程;

• **直接进入商品抢购页面,通过adb命令操作抢购:**os.system是py调用shell的一种方式,adb的全称为Android Debug Bridge,就是起到调试桥的作用; 通过adb shell input tap命令,可以控制手机操作点击手机区域(注:区域为传递的X,Y轴的坐标),通过这种方式可以连续操作手机进行抢购活动

appUI脚本攻击方式,是通过工具化的手段,例如Uiauto.js、uiautomator、appium等等,实现的手机控制app(内置的webviewH5需要结合webdriver)实现模拟人为操作,实施抢购;

• **setup方法:**封装了驱动的一些必要参数,系统的类型、设备名称、app包名、首页面活动页、使用的浏览器驱动的地址(H5)等等关键核心驱动说明

• **appium:**此案例里面使用了appium工具操作,所以remote方式链接appium-server

• **核心模拟路径:**所有的操作路径,业务逻辑封装在test_search里,通过坐标点击 以及 H5页面的操作,在while True里面无限循环进行抢购商品

四、风险防守、识别篇:

再高明的攻击手段,在智能风控面前下,都会毕露无遗,风险侧通过关联黑名单、设备指纹、生物探针、风险标签(群控、设备聚集性、陀螺仪、云手机等等)可以识别出来人的操作轨迹,按压行为等等,可快速识别风险,锁定风险,消除风险;(注:由于机密性比较强,此处不做过多详细说明😃)

相关内容

热门资讯

无悔的选择作文 无悔的选择作文(精选20篇)  在日常生活或是工作学习中,大家或多或少都会接触过作文吧,作文根据体裁...
沙滩,大海作文 沙滩,大海作文(精选15篇)  在平日的学习、工作和生活里,大家都跟作文打过交道吧,作文要求篇章结构...
以感恩为题的作文 以感恩为题的作文(通用26篇)  在日常的学习、工作、生活中,大家都有写作文的经历,对作文很是熟悉吧...
游普陀山作文 游普陀山作文游普陀山作文1今天我们决定去普陀山玩。早晨,我们驾车到了目的地,买了船票,好多人排队等了...
写父亲的作文 写父亲的作文(精选60篇)  在日复一日的学习、工作或生活中,大家都不可避免地要接触到作文吧,借助作...
我要自由作文 我要自由作文(4篇)  在平平淡淡的学习、工作、生活中,大家都不可避免地会接触到作文吧,通过作文可以...
难忘的旋律作文800字 难忘的旋律作文800字  "歌曲最重要的是用情感打动人,很多听众和我说他们感觉《懂你》唱给恋人也合适...
玩的作文400字 关于玩的作文400字(通用30篇)  在日常学习、工作抑或是生活中,大家都经常看到作文的身影吧,借助...
随笔作文 随笔作文随笔我不知道梦想是什么颜色,也许它自有自己的颜色,我不知道风往哪里吹,也许它自有自己的方向,...
曾经那个少年作文 曾经那个少年作文(精选22篇)  在现实生活或工作学习中,大家都跟作文打过交道吧,通过作文可以把我们...
垃圾分类的重要性优秀作文40... 垃圾分类的重要性优秀作文400字  我是一个垃圾桶,整天在角落收垃圾,一天到晚都挺着一个“啤酒肚”,...
我最爱看的电视栏目250字作... 我最爱看的电视栏目250字作文我最爱看的电视栏目是少儿频道的《熊出没》。原因:因为这部动画片很好玩,...
爱玩乐器的爸爸作文 爱玩乐器的爸爸作文爱玩乐器的爸爸··· 韩鹦我的爸爸是一个非常喜欢音乐的人,他特别擅长吹、拉、弹各种...
让我再看你一眼作文 让我再看你一眼作文  在日常学习、工作抑或是生活中,许多人都有过写作文的经历,对作文都不陌生吧,借助...
20年后的世界想象作文 20年后的世界想象作文  在日常的学习、工作、生活中,大家对作文都再熟悉不过了吧,写作文可以锻炼我们...
雨优秀作文 【荐】雨优秀作文  在日常学习、工作和生活中,大家都经常看到作文的身影吧,作文根据写作时限的不同可以...
春天作文 关于春天作文(通用15篇)  在日复一日的学习、工作或生活中,大家总少不了接触作文吧,作文是一种言语...
给老师“画像”_我的老师作文... 给老师“画像”_我的老师作文600字  无论是在学校还是在社会中,许多人都有过写作文的经历,对作文都...
我喜欢的水果西瓜作文 我喜欢的水果西瓜作文我喜欢的水果西瓜我最喜欢的水果就是西瓜了。今天正好是星期天,我的奶奶到市场去给我...
秋收的作文600字 秋收的作文600字(精选32篇)  在日常学习、工作或生活中,大家都不可避免地会接触到作文吧,作文是...