最近看币种行情的时候,发现QTBC交易所时不时的有人发红包,当时就在想,可不可以搞一个自动抢红包的脚本,反正红包再小也是肉,说干就干
首先分析这个聊天室,实时的推送消息,打开开发者工具查看,可以在websocket中找到相应请求
果然找到了相应的聊天信息,查看对应的红包聊天信息
同时,我们试图点击一个红包,查看请求
需要这几个关键字参数,其中redredEnvelopCode在聊天信息中可以得知,现在还需要去解密token和sign参数,只有去JS中试图解密
全局搜索token或者sign关键字会太多,直接打开initiator(启动器),可以发现有vendor和app的js,
这里呢先去vendor的js中
在vendor中,搜索关键字参数token, 或者sign,打上断点会发现并不是我们需要的sign,
也就是没有找对地方,我们可以退出这个vendor.js去app.js再去搜索token或者sign关键字,也可以换一种思路,这里呢不管是token或者sign都使用了加密,我们可以尝试搜索加密的关键字encry,可以搜索到相关的js,打上断点调试一番
同时选中js,查看运行的结果可以发现
这一段结果很像token参数,于是查看调用栈仔细查找参数
查看上一个调用函数可以发现我们到了app.js中,这段js代码中设置了PublicKey,同时我们还要查看e是怎么来的
再去看看e是怎么来的,可以发现来到这里,进入A.b函数中可以发现,e这里变量就是去获取得到的
得到了e 关键字,发现了公钥,我们在利用Rsa公钥对e进行加密,就可以得到token了
接下来解决sign,去app.js中搜索sign可以发现,在断点F11进去仔细查看
sign到这里也完美解决 sign="language=zhredEnvelopeCode={red_envelope_code}token={token}"
token就等于rsa的公钥对e进行加密
接下来开始撸代码