别人都在抢茅台,而我学到了技术

博主分享了自己从好奇朋友晒茅台开始,尝试抢购并编写抢购脚本的过程。在京东的不断风控升级中,博主通过数据抓包、JS逆向等技术手段应对,虽然最终因规则改变导致脚本失效,但从中学习到很多技能,体验了程序员的乐趣。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缘起

对于“抢茅台”这个概念,是从朋友圈看到朋友晒了两瓶 53度 飞天茅台的图片开始的。出于好奇,问了朋友,他说这两瓶能赚一千多块钱。从此,我也开始了抢茅台之路。

第一次抢到茅台是双十二的下午,打开京东发现下午六点可以抢茅台,我随意点了一下,发现抢到了,第一次抢到就是这样意外。尝到甜头后,每天早上十点手机打开抢购,结果坚持了几天后,意外的又抢到了第二瓶,感觉抢购真的挺容易,坚持出奇迹。

有一天,我关注的一个公众号,推送了一条抢茅台脚本的github项目的介绍,自己就忍不住去GitHub上自己搜索了下,发现了几个抢茅台脚本,最后选了一个自己熟悉Go语言写的抢茅台代码,自己编译过后,正好自己两瓶的限制释放了一瓶的名额,程序跑起来,第一秒就抢成功了。

也就是从软件抢购成功第一瓶的时候,GitHub的作者,出于风险考虑,把代码移除了。

开始研究

于是感觉嗅到了一条捷径,开始自己抓包,分析程序逻辑。

之后的第一周,京东出了风控策略,也就抢茅台群里特别熟悉的,返回内容为空,其实也就是著名init接口,这个接口开始返回为空或者被302到其它网页。这个接口返回都内容是用户信息,商品信息,以及token,这些都是提交订单必须要到参数,所以这个门槛干掉了一批人。不过经过我的几天抓包后,发现了问题所在,自己优化了一版,但是自己没抢购名额,默默等名额恢复。

之后的第二周,京东又进行了更新,增加了一个四个参数,最厉害的莫过于s k这个参数,这个参数是由一个混淆的j s文件生成,于是出于好奇,开始研究j s逆向,终于通过研究规律,写程序把混淆解析了回去,将s k的生成规则成功找到,正好也把代码自己更新了一版。

规则变了

今天,我的账号终于恢复了一瓶抢购的资格,磨拳擦掌准备明天大干一场的时候,京东茅台店铺规则变了!

规则变了有三个地方,第一个地方,只能手机app进行抢购(也就是之前电脑端抓包过程模拟的程序作废);第二个地方,不仅plus会员可以抢购,普通会员也可以抢购;第三个地方,抢购时间变更了,预约为10:00 抢购变为了12:00。

在这里插入图片描述

这回合虽败,但学到很多

虽然京东电脑端抢茅台软件自己研究好了,最后没派上用场,但是感觉这个过程,学到了很多东西,数据抓包分析,Go项目中的几个库gjson 之类的,真的挺好用,还有那些那个j s的逆向过程,虽然抠js的过程很难受,但是过程中,学到了挺多的知识。

发散一下思维
  1. 京东其实还有其它东西可以用这套逻辑搞定
  2. 手机端其实也是可以模拟的,门槛又高了一些而已
  3. 新出的时间和规则变了,黄牛和大家一个起跑线了,明天是手动抢购的机会
  4. 其它平台的逻辑,如果有时间也可以这样搞一套

程序员的乐趣就是这样的平淡无奇,引起了兴趣就去点燃它一下,玩的同时,把技术也学会了。

在这里插入图片描述

在控制器中设置一个Feature时,有几个情况需要考虑。首先,如果控制器不支持该Feature的可变值,即该Feature是不可更改的,那么根据命令中指定的Feature值与当前值是否相同,控制器有两种行为选择。如果指定的Feature值与当前值不同,控制器将中止该命令并返回状态码"Feature Not Changeable";如果指定的Feature值与当前值相同,控制器可以选择成功完成该Set Features命令或中止命令并返回"Feature Not Changeable"状态码。 在完成设置Feature的Set Features命令后,主机应该重新发现、重新列举和/或重新初始化与该Feature相关的所有capabilities。这是因为设置Feature可能导致相关的命名空间能力发生变化,所以主机软件应暂停使用任何相关的命名空间,并等待Set Features命令完成后,重新向受该命令影响的所有命名空间发出命令。这样可以确保新的Feature设置适用于所有后续命令。 Figure 316定义了可以使用Set Features命令配置和使用Get Features命令检索的features。不同类型的控制器可能有不同的强制、可选和禁止的features,具体信息可以参考相关文档。一些features使用内存缓冲区来配置或返回属性,而其他features仅使用命令或完成队列中的一个dword。如果某个Feature在电源断电或复位时不是持久的,那么作为控制器级复位的一部分,该Feature的当前值应该被设置为默认值。关于Features的更多信息,包括默认值、保存值和当前值的定义,可以参考相关章节。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【NVMe2.0b 14-7】Set Features(上篇)](https://blog.csdn.net/BGONE/article/details/125509919)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值