零基础手把手教你写NFT抢购软
零基础手把手教你写nft抢购软
前言
由于之前写过几篇文章,但是个人不是很满意,所以这次我打算把所有的知识汇总成一篇文章。可能会有很多地方写的不是很好,欢迎大家评论指出,我后续修正。
个人vx:http://wc.ljlju.cn/4ZGETK
抢购软件原理
我们在点击抢购按钮的时候,会向平台的服务器发送HTTP请求,这条HTTP请求会携带你的账号信息(token或cookie)商品的id、数量、支付密码等等发送到服务器。服务器接收到请求后,会进行执行抢购的操作,然后再返回结果,告诉你是否抢购结果(抢购成功、库存不足、服务器异常……)。
我们的抢购软件,就是跳过了点击抢购按钮的步骤,直接向平台服务器发送抢购的HTTP请求,通过软件的循环发送,可以实现一秒钟发送几十条几百条抢购的HTTP请求,只要有一条HTTP请求被平台服务器处理成功并且返回结果为下单成功,则为抢到了商品。这种方式可比手动或者连点器强很多!!!
查看和分析HTTP请求
这里我直接用某台子进行学习讲解,大家切勿进行非法的操作。
打开下方网址:https://m.eryday.fun
点击键盘的F12,弹出调试窗口
接下来大家点击网络
好了,这时候咋们点击我的,然后随便输入手机号、输入验证码、点击发送验证码按钮,这个时候我们可以观察到有这么一个接口
这个就是你点击获取验证码按钮后,请求给后端的接口,我们接着点开他
对于上图我们一般需要关注的点有下面三个:
- 请求的URL地址:https://m.eryday.fun/api/verify-code/send
- 请求方法:GET
- Content-type:application/json
这个是发送验证码接口,用户这时候还没有登录,所有请求头并没有token选项,后面会给大家讲到。
我们先点开负载看看里面是什么内容,负载里面的内容就是请求体
通过观察,我们发下了一下信息:
mobile:"13333333333" (我们输入的手机号)
id: "Jo9lbMldS5Gf6naD5KbAzA" (不确定是什么参数)
type:1(类型,这个应该是固定的)
captcha:x526(我们刚刚输入的验证码)
再点开响应可以看到登录的结果
我们可以看到,这个就是点击**”发送验证码“按钮后,接口返回的信息。通过返回信息我们可以知道这个验证码是发送失败的,因为我们的手机号输入的比较6,触发了风控机制,接下来我们刷新页面**输入一个正常的手机号码,再点击发送验证码按钮,然后观察观察请求接口的情况。
上面框住的四条请求,就是我们从输入手机号、验证码到点击发送验证码按钮这个过程的所有请求了,我们一一点开请求,看看他们之间是否有联系
相信大家已经发下了,上面我们未知的id的数据,就是获取图片验证码之后的返回的id。到此,我们就分析明白了,这个网站发送验证码的所有逻辑。接下来我们来缕一缕。
第一步:请求图片验证码接口,获取图片验证码
请求URL:https://m.eryday.fun/api/captcha/graph
请求方法:POST
请求头:content-type: application/json
请求体:{"type":1,"fontSize":20,"width":100,"height":40}
接口响应:
{
"code": "0",
"data": {
"id": "xV5ZjLU8QWS2wehcnNk1Mw",
"content": "data:image/png;base64,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"
},
"success": true,
"ext": {
"executionTime": "3",
"currentDate": "2023-04-14T00:02:42.023+08:00"
},
"msg": "操作成功"
}
第二步:发送验证码
请求URL:https://m.eryday.fun/api/verify-code/send
请求方法:POST
请求头:content-type: application/json
请求体:{"mobile":"13553232231","type":1,"captcha":"mhru","id":"xV5ZjLU8QWS2wehcnNk1Mw"}
接口响应:
{
"code": "0",
"data": null,
"success": true,
"ext": {
"executionTime": "390",
"currentDate": "2023-04-14T00:02:48.629+08:00"
},
"msg": "验证码已发送到你的手机,请查收"
}
通过简单的操作,我们就能分析出来,这个平台发送验证码是请求了哪个接口,提交了拿些数据。那么我们如果想通过软件的方式去实现,那么原理就是我们也去请求这些接口,只是把mobile这个参数的值,改成我们自己输入的手机号,即可模拟发送该接口。写抢购软件也是一样的道理,先找出点击抢购按钮的接口参数,我们在通过软件模拟出一样的参数,然后循环不断的像平台发送抢购请求,从而达到快人一步的目的。
接下来我希望大家可以举一反三,分析一下该平台登录接口的信息。
通过分析登录的接口,我们就可以获取到用户的token的值,那么在后续的所有请求中,在请求头携带该token,就相当于是该用户发起的请求,平台是通过这个token,来关联这个请求到底是哪个用户发起的。
我们可以看到后续的请求都会在请求体携带这个x-token(不同网站不同的命名),用来判断是哪个用户和是否是登录的状态。
常见HTTP请求
一般的HTTP请求为GET和POST请求。通常可以这样子理解,我需要向服务器获取数据的则为GET请求,我要提交数据给服务器的为POST请求。
例如:
GET请求:获取用户信息、获取商品信息。
PSOT请求:登录账号、下单商品。
HTTP请求又分为请求头和响应体
GET方式常见请求头:
GET /login/person?name=liangjaing&password=123123 HTTP/1.1 //请求地址
Host: www.ljlju.cn //请求的目的地
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) //浏览器类型
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive //可以不用理解
POST方式常见请求头(application/x-www-form-urlencoded)
POST test/persion HTTP/1.1
Host: www.ljlju.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded //请求类型
Content-Length: 40
Connection: Keep-Alive
Cookie: xxxxxx
Token: xxxxxx //用户身份标识 拿到了token或者cookie就相当于登录了这个账号
name=liangjiang&password=123123 //请求体
POST方式常见请求头(application/json)
POST test/persion HTTP/1.1
Host: www.ljlju.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/json //请求类型
Content-Length: 40
Connection: Keep-Alive
Cookie: xxxxxx
Token: xxxxxx //用户身份标识 拿到了token或者cookie就相当于登录了这个账号
{"name": "liangjiang", "mima": "123123"} //请求体
响应体就是服务器处理的结果,一般成功的code值为200,抢购的结果会在响应体中展现出来。
{"success":false,"code":20001,"message":"账户密码错误","data":{}}
手动模拟请求
如果我们最终是用易语言来编写抢购软件的话,建议用精易编程助手来模拟请求。
软件链接
https://wws.lanzouy.com/b0fft39wj
密码:c5cx
我们只需要将上面分析出来的接口的信息,填进去,点击发送请求即可,下面我模拟获取图片验证码的,请求体(提交数据)可以先点击查看源,再复制进去
最后我们获取到的响应正文,和浏览器获取到的响应是一模一样的,这个时候我们手动复制content里面的内容,data:image/png…然后浏览器打开,就能看到图片验证码,我们接着模拟发送验证码的接口,将这次的图片验证码的id和正确的图片验证码作为提交数据。就可以模拟成功发送验证码的请求。
这个时候我们的手机号成功接收到平台的验证码。
然后通过获取的验证码,再进行模拟登录接口,就能够获取到用户的token,从而进行后续的其他操作。这一步我就不演示了,希望大家可以举一反三。
提前获取抢购接口
接下来讲解怎么获取抢购的提前包
我们在写抢购接口的时候往往都得提前去获取,接下来教大家一个百试百灵也是最简单的获取提前包的方法
我们点进去看看,记得分析接口。
我先说抓提前包的思路
还是看这张图,我们需要做的就是在返回结果这里动手脚
首先我们要明白,是什么来控制网站的商品未寄售->寄售中->已售完这三个状态的变化的,其实就是这个返回结果
当我们点击商品进入商品详情的时候,接口会返回该商品的所有信息,当然也就包括了商品的寄售状态
我们想要获取提前包,那么就可以在第三步的时候,拦截服务器返回的接口数据,将代表寄售状态的数据改成寄售中,或者直接修改系统返回的寄售时间。本来系统设置该商品的寄售时间为下午2点,那么我们把这个时间改成当前时间,那么这样子就可以获取提前包了。
我们可以看看这个平台的商品详情的返回数据
{
"code": "0",
"data": {
"id": "16",
"type": 1,
"itemsLevel": null,
"title": "KAJA纪念邀请盲盒 ",
"subtitle": null,
"mainImgUrl": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png",
"mainImg": {
"id": "89",
"sort": 0,
"path": "res10/rs/product/20230405/aa0448d940058098.png",
"url": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png",
"mediaType": 1,
"canDownload": false,
"isMain": false,
"props": {
"width": 1024,
"height": 1024
}
},
"markingPrice": null,
"price": 9.9,
"logicStatus": 4, // 逻辑状态 重点关注
"startTime": "2023-04-09T20:00:00.000+08:00", //开售时间 重点关注
"endTime": "2023-04-10T00:00:00.000+08:00",
"issueNumber": 5000,
"tags": [],
"author": "",
"authorImgUrl": null,
"issuer": "iFun官方",
"issuerImgUrl": "https://res10.eryday.fun/rs/content/20230220/7e64d39a4836b899.png",
"hasPreemption": true,
"preemptionDate": null,
"rebatePoint": "0",
"userCanPreemption": null,
"introImgUrls": [
"https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png"
],
"detailHeaderMedia": {
"id": "96",
"sort": 0,
"path": "res10/rs/product/20230409/9141040f48f6a397.png",
"url": "https://res10.eryday.fun/rs/product/20230409/9141040f48f6a397.png",
"mediaType": 1,
"canDownload": false,
"isMain": false,
"props": {
"width": 1024,
"height": 1024
}
},
"detailMedias": [
{
"id": "95",
"sort": 0,
"path": "res10/rs/product/20230409/7dd4a6ab4e2da912.png",
"url": "https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png",
"mediaType": 1,
"canDownload": false,
"isMain": false,
"props": {
"width": 1125,
"height": 4897
}
}
],
"purchaseNotes": "数字文创藏品为虚拟数字商品,而非实物。仅限年满18周岁的中国大陆实名认证用户购买。数字文创藏品的版权由发行方和原创作者拥有,除另行获得版权拥有者书面同意外,用户不得将数字文创藏品用于任何商业用途。本商品一经售出,不支持退换。请勿对数字文创藏品进行炒卖、场外交易、欺诈或以任何其他非法方式进行使用。"
},
"success": true,
"ext": {
"executionTime": "3",
"currentDate": "2023-04-15T01:12:32.885+08:00"
},
"msg": "操作成功"
}
我们通过观察,可以发现通过修改上面的两个参数中的任意一个,都可以修改商品的寄售状态,从而提前获取抢购接口。
这个时候,咋们的抓包神器就得出场了,由于fiddler安装起来稍微复杂了一下下,这边为了方便演示,就先用另外一个软件,功能都是一样的,目的就是为了在服务器放回数据的这个阶段,将这个请求给拦截住,然后修改里面的数据,再将修改后的数据返回给平台。
我们先在文本框里将返回数据修改好,因为这个商品已经是售完状态了,所以改开始寄售时间肯定是不行了,我们直接改商品状态,先把4改成1
{
"code": "0",
"data": {
"id": "16",
"type": 1,
"itemsLevel": null,
"title": "KAJA纪念邀请盲盒 ",
"subtitle": null,
"mainImgUrl": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png",
"mainImg": {
"id": "89",
"sort": 0,
"path": "res10/rs/product/20230405/aa0448d940058098.png",
"url": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png",
"mediaType": 1,
"canDownload": false,
"isMain": false,
"props": {
"width": 1024,
"height": 1024
}
},
"markingPrice": null,
"price": 9.9,
"logicStatus": 1,
"startTime": "2023-04-09T20:00:00.000+08:00",
"endTime": "2023-04-10T00:00:00.000+08:00",
"issueNumber": 5000,
"tags": [],
"author": "",
"authorImgUrl": null,
"issuer": "iFun官方",
"issuerImgUrl": "https://res10.eryday.fun/rs/content/20230220/7e64d39a4836b899.png",
"hasPreemption": true,
"preemptionDate": null,
"rebatePoint": "0",
"userCanPreemption": null,
"introImgUrls": [
"https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png"
],
"detailHeaderMedia": {
"id": "96",
"sort": 0,
"path": "res10/rs/product/20230409/9141040f48f6a397.png",
"url": "https://res10.eryday.fun/rs/product/20230409/9141040f48f6a397.png",
"mediaType": 1,
"canDownload": false,
"isMain": false,
"props": {
"width": 1024,
"height": 1024
}
},
"detailMedias": [
{
"id": "95",
"sort": 0,
"path": "res10/rs/product/20230409/7dd4a6ab4e2da912.png",
"url": "https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png",
"mediaType": 1,
"canDownload": false,
"isMain": false,
"props": {
"width": 1125,
"height": 4897
}
}
],
"purchaseNotes": "数字文创藏品为虚拟数字商品,而非实物。仅限年满18周岁的中国大陆实名认证用户购买。数字文创藏品的版权由发行方和原创作者拥有,除另行获得版权拥有者书面同意外,用户不得将数字文创藏品用于任何商业用途。本商品一经售出,不支持退换。请勿对数字文创藏品进行炒卖、场外交易、欺诈或以任何其他非法方式进行使用。"
},
"success": true,
"ext": {
"executionTime": "3",
"currentDate": "2023-04-15T01:12:32.885+08:00"
},
"msg": "操作成功"
}
我们先设置系统代理,再拦截响应
发现状态改成了即将开售,那么我们继续改成2试试
成功点亮购买按钮,我们点击立即购买。就能够获取到抢购的接口了。
按照上面的思路,去分析抢购接口的请求参数、我们后续就可以通过软件生成对应的抢购请求,然后批量发送。
请求URL:https://m.eryday.fun/api/order/trading
请求头:
Accept: */*
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: keep-alive
Content-Length: 61
Content-Type: application/json
Cookie: cna=c4bf69feb31f409c960ec48a4ee23f74; acw_tc=0b68a81a16814951542354451e2d0c5a97f1af858edf8feda8a6d03f44f5ba
Host: m.eryday.fun
Origin: https://m.eryday.fun
Referer: https://m.eryday.fun/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/112.0.0.0
x-app-type: 100
x-appversion: 1.0.9
x-appversionnum: 119
x-device-id: 16814957461176540747
x-device-type: 10
x-token: xxxxxxxxxx--xxxxxxxxxxx // 这里会携带token
请求体:
{"pid":"16","traceId":"487c83c5-bf6e-4c21-a12a-1039a3b30696"}
这个pid就是商品id,可以通过浏览器的地址,有个product_details?id=16获取
那么下面的这个traceId,应该就是平台的加密数据了,那么这个又是下面的知识点了,但是这个后面通过解密发现其实就是一个UUID,相当于一个随机的字符串,我们在手动模拟请求的时候可以随便改几个数据,也可以发送成功
这样子我们直接就拿到抢购接口了。大家可以找找其他平台练练手,这个还是很简单的。特别是该发售时间,建议先改这个。百分之99的平台都可以通过这个方法提前获取抢购接口。
破解接口加密的几种常用的方法
因为数藏台子都是赶鸭子上架的,大多数平台的加密措施其实做的并不是很好,也很多根本没有加密的,基本上的关于数藏平台的加密方式,都是相对比较简单的。
下面是比较常见的加密方式和他的一些特征:
MD5加密
这种加密方式是不可逆的,一般用在登录的时候,因为是不可以解密的,所以当你登录的时候将密码通过一定的规则MD5加密之后,传到服务器,服务器会从数据库中获取到你的密码,然后用相同的规则进行MD5加密(比如加一段特定的字符串),然后和你传过来的MD5进行比较,如果一致则登录成功。
假设我的密码是“123456”,一般网站做MD5加密的时候,会在密码后面拼接一串字符串变成“123456liangjiang666”,然后对123456liangjiang666进行MD5加密
加密后的数据为:b5f69f2a0b186354da715d6e80249e2b
这串加密的数据是无法解密的,但是不管加密123456liangjiang666多少次,最终的结果都是b5f69f2a0b186354da715d6e80249e2b
DES / AES 加密
DES 是一种使用密钥加密的算法。该加密算法是一种对称加密方式,其加密运算、解密运算需要使用的是同样的密钥(一组字符串)即可。
这个加密方式我们一般需要关注这三个点
- Key:为 7 个字节共 56 位,是 DES 算法的工作密钥
- Data:为 8 个字节 64 位,是要被加密或别解密的数据
- Mode:为 DES 的工作方式
在JS逆向的时候只需要找到key即可,这块得在视频讲解。
RSA 加密
RSA 加密算法是一种非对称加密算法。
- 通过公钥加密,使用私钥解密。私钥是通过公钥计算生成的。假设 ABC 三方之间互相要进行加密通信,大家互相之间使用公钥进行信息加密,信息读取时使用各自对应的私钥进行信息加密
- 用户输入支付密码会通过 RSA 加密
JS逆向的时候找公钥和私钥,一般都会存在前端
base 64 伪加密
Base64 是一种使用 64 位字符来表示任意二进制数据的方法。base64 是一种编码方式而不是加密算法,只是看上去像是加密而已,上面说到的图片验证码,就是base64编码,这个无需解密,转换一下即可。
对于上面的平台的traceId加密其实就是上图这段,让我们问问chatgpt这是个啥玩意
我们用软件生成一下就行了
抢购软件的编写
编写抢购软件,可以选择很多语言,易语言、python、java啥的都是可以的,这块我打算放在视频上面讲解,或者去看看我前面几篇文章,我展示下用chatgpt写哈哈
直接拿下,用易语言编写的话直接软件可以生成,非常方便
后续以视频的方式带大家入手抢购软和捡漏软
更多推荐
所有评论(0)