抓包方法
微信红包数据包抓取工具就是这个,功能就不用多说了,最强大的
没有其他网络数据包协议分析软件。
还有手机型号系统和微信版本的问题,尝试过安卓手机和更高版本的微信,但只抓到了两个微信红包数据包,分析起来比较困难,最后确定只有在苹果系统、微信6.5版本环境下才能抓到理想的数据包。
抓取微信红包数据包的方法就是将笔记本电脑通过WIFI连接路由器,然后利用笔记本电脑网络
该卡双频收发功能,可以同时连接WIFI和开启热点,手机WIFI可以连接电脑开启的热点上网。
只需通过监控来打开笔记本电脑热点网络连接即可。
该协议多层数据包信息量庞大而复杂,因此需要在过滤工具栏中添加针对http协议的过滤规则,以方便抓包。
抓包分析
关于微信红包,一般有三个流程:发红包,收红包,查看红包。
红包
领取红包
查看红包
每个数据包的Info栏中的英文字段可以直观的体现出这个数据包的功能,而微信高版本对Info栏进行了加密,将其变成了复杂的英文和数字组合,进一步加强了安全性。还可以看出,红包发起请求方式为POST,不会保存参数,比GET请求方式更安全。选中任意一个数据包查看详情,会发现主要交互的域名为,和实验时服务器的IP地址是一样的,都是182.254.92.141。
红包延迟

抢红包的时延可以分为两类:网络传输时延和用户终端时延。
从数据包角度看,网络传输时延主要发生在接收红包和打开红包的时延上。如下图时间图所示,客户端点击收到的红包消息时,向服务器发出请求直到服务器返回红包状态的响应,往返时延约为0.11s。客户端点击打开红包时,向服务器发出请求直到服务器返回红包已打开及金额详情的响应,往返时延约为0.53s。可以看出,打开红包涉及到红包金额分配算法的运算、支付管理账户录入等安全操作,需要的时间较长,服务器对客户端的响应明显比之前单纯回复红包是否被抢完的请求慢很多。
用户端延迟包括用户操作延迟和用户端UI延迟。用户操作延迟可以理解,取决于人的反应和点击速度,因人而异。用户端UI延迟重点关注屏幕的物理响应和UI绘制延迟。根据网上的信息,苹果手机由于系统性能和屏幕响应机制优秀,在抢红包方面比安卓手机更有优势。
參考
至于供应商流量环境和WIFI环境下抢红包速度的对比,一般来说WIFI环境下抢红包速度要优于流量环境。从距离上看,无线传输距离越长,耗时越长,WIFI环境下用户终端到路由器的距离比流量环境下到基站的距离短,降低了时延,信号到达路由器或者基站之后,就可以以有线光缆的光速进行传输。从设计标准上看,流量环境下最好的技术LTE目标时延为,而WIFI在轻载下可以达到10ms左右,速度相差5倍。另外一点考虑就是网络运营商的建设,WIFI连接的有线网络运营商中国电信的骨干网建设要优于流量运营商中国移动和中国联通,腾讯的微信服务器以及相关红包服务器更有可能搭建在中国电信的骨干网上。
红包规则
研究领取红包顺序和红包数量的关系,红包设计如下:红包总金额20元,红包数量20个,共发放十轮红包,然后统计分析,表格数据如下,黄色高亮部分为本轮运气最好。
从散点图我们可以看出,大部分红包的金额都是围绕所有样本的均值即1分布的,横轴越大,纵轴增大的概率越大。也就是说,好运大多分布在领红包顺序靠后的数字上,领红包的顺序越靠后,越容易拿到好运红包。所以,对于喜欢争取好运的冒险家来说,看到红包后不必立刻行动,等一段时间再打开,也许愿望会实现,但需要承担打开红包太晚导致红包被拿走的风险。
从均值折线图中我们可以看出,均值随着领红包的顺序波动很大,但一般都在1左右波动。也有可能是样本数据太少,个别偶然因素影响很大,导致样本不典型。所以想利用上面“越晚抢红包越容易中大奖”这个规律的人,不要沾沾自喜。一场热闹的抢红包大战之后,很有可能你抢到的和别人偶然抢到的差不多,大家抢到红包面额的概率大致均匀。
从标准差折线图中我们可以看到,随着横轴的增大,纵轴也在增大,也就是说随着领取时间的增加,标准差也在增大。标准差可以描述数据的分散程度,说明数据的稳定性,标准差越大,数据波动越剧烈。这也印证了之前的说法,以后很容易领到大额红包,为了使均值稳定在1左右,也很容易领到小额红包。所以,极端值过多的情况,就增加了标准差和方差。
综上所述,研究得出的微信红包的规律为:微信红包具有公平性,多次抢红包获得的金额差不多;每次抢红包的顺序越早,获得的红包金额越稳定在均值,每次抢红包的顺序越晚,获得的红包出现最好或最差运气的概率越大。
红包算法
根据数据可以认为微信红包满足截断正态分布。算法就是从截断正态分布中取随机数,用数之和除以总值,得到修正系数,再用修正系数乘以所有的随机数,得到红包值。这个分布意味着:降低抽取红包大小分布的方差,让更多的人抽到均值附近的红包,同时仍然给少数人抽到大红包的机会,总体上增加了抽红包者的积极性和游戏的公平性。
而为了避免最后一位领取红包的人红包余额为0,红包机制可以是:在发红包的时候,程序自动按照截断分布生成相应大小和数量的红包,然后随机发给抽红包的人。同样,这样的随机过程有助于增加游戏的公平性,降低抽红包的人投机的动机(也就是比如故意等到钱包半空才去抽)。也就是说,不管谁先拿,谁后拿,预期都是一样的。
參考