python和易语言抓包_Python学习日记——手机抓包与模拟登陆(2)

Part4 封包构建以及发包流程

上回说到,我们已经抓包找到了登录信息和加速卡网页,接下来我们以登陆封包为例介绍此场景下的封包构建及发包流程。登陆发包流程

可以看到,上图中第①个方框内,根据抓包得到几个重要信息,我们构建了一个字典,这个字典传入requests包的post命令时,会自动转换为目标格式(requests库牛批!)。这里用到的“ac”字段即“login”,服务器就会根据此字段来返回特定内容。

第②个方框内即正式的发包函数,这里发送的是post包,4399实际上有两种接受参数的方式,post和get(神奇的是,4399的某个前端把post定义成了get)。这里登陆使用的是post命令。

第③个方框内使用了json库来把响应内容解析为字典,以便进行后续的分析。

而第④个方框则是对响应内容进行分析,此处是为了便于获取积分,获取了页面上游戏id、获取积分所需等待的时间、游戏名称(实际上未用到,某些特殊情况可能需要)等信息。模拟获取积分过程

这个过程同样是发包等操作,这里“ac”字段是“playgame”,即试玩游戏获得积分。这里返回值是什么并不重要,因此没有使用json来解析响应。

这里注意,手机(模拟器)上需要实际安装这些应用,并且当天获取积分后在手机上打开页面一次积分才能到账。具体模拟抢补签卡过程

这里“ac”字段使用的是supplementary(adj.增补性的; 补充性的; 额外的; 外加的;n.补充者; 增补物;),即抢的是补签卡。这里抢卡需要提前认证,认证时使用的“ac”字段大家可以自行摸索。本脚本由于使用的是Python,编写图形界面比较麻烦,就把验证操作提取到易语言的一个小插件中了。实际上账号也可以使用封包提前绑定,具体请大家自行摸索(实际上是因为自用脚本不需要那么麻烦,直接上APP绑定就完事儿了)。

接下来是自动签到:自动签到第一部分

第一部分用来获取当前已签到的日期,实际上脚本可以不这么复杂,但是写代码时脑子没有转过来,后来也懒得改了。大家可以自己把代码简化一下,自己分析一下封包就什么都有了。

这里使用了get方法来发包,这种方法是与APP完全一致的,同时后台地址也发生了变化,因为操作的页面发生了变化,大家可以自行尝试一下。自动签到第二部分

抢奖品的封包构建与此类似,不同的是抢奖品的“ac”字段为“prizeRand”。这里我们可以通过封包看出来某个奖品是否为限量奖品。普通奖品的“ac”字段都是“prize”。具体构建详见代码特定部分。

最后,4399库的调用方法【main.py】:调用模块的方法

Part5 源码下载地址及更多的话

源码【func.py】下载地址:https://wws.lanzous.com/iyedyfrciob

调用文件【main.py】下载地址:https://wws.lanzous.com/iE6SKfrcxyb

签到助手下载地址:https://www.lanzoux.com/iuh6rfrcxzc

由于蓝奏云不支持上传py文件,因此下载后请自行把后缀名修改为.py。

本萌新其实只是把自己用过的脚本发出来,写教程确实很麻烦,难以决定什么地方重要、什么地方不重要。因此上面的教程只是把自己认为重要的内容标记了出来。

发出来的源码是不能够直接运行的,需要使用外部脚本调用,main.py文件提供了一个简单的demo。

有人可能说了,发出来会方便奸商来改进自己的脚本。这一点我是丝毫不担心的。业余与专业是没有可比性的,我发的内容只能说是最简单直接的操作方式了,奸商大可以用更先进的技术。

有一部分操作可以加到调用文件里来跳机器验证,这部分普通用户没有必要知道,自己抢点道具没必要涉及到这部分内容。

以及,自己的封包都被摸得这么透了,4399真的不打算加固一下系统?不打算加点人机认证来干掉部分脚本?

佛系玩家表示,倘若没有奸商们下场搞脚本,本萌新也没有必要来写这个脚本了。

Part6 对4399系统的建议和改进

要减少脚本的数量,可以尝试这样几种方法:

①把电脑游戏专区做成小程序/程序内置形式,使用盒子自身的api来进行发包操作(盒子自身的认证更加复杂)

②使用ssl-pinning等技术防止中间人攻击(抓包)

③加入人机验证,比如先抢占库存,然后弹出人机验证,限定时间内人机验证失败则释放库存

④加强加速卡管控,限制一天中能够获取的数量等等

⑤不定期更换后台地址,将原后台作为记录系统,封杀部分低级脚本

⑥缩短scookie的有效时间,比如每天软件端更新scookie

⑦使用客户端本身进行辅助验证,比如判断客户端在线情况,同时在线操作才有效

希望4399程序员某一天能够看到这篇文章。

萌新就想开个源混个硬币,希望各位大佬轻喷

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值