本文作者:梁冬冬
前言 : 明天你撸茅台了么👇?撸茅台曾经成为社会景象🙌,茶余饭后探讨的最佳实际😇
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 外面有限循环进行抢购商品
四、危险防守、辨认篇:
再高超的攻打伎俩,在智能风控背后下,都会毕露无遗,危险侧通过关联黑名单、设施指纹、生物探针、危险标签(群控、设施汇集性、陀螺仪、云手机等等)能够辨认进去人的操作轨迹,按压行为等等,可疾速辨认危险,锁定危险,打消危险;(注:因为机密性比拟强,此处不做过多具体阐明😃)