偶然一次机会对xposed插件学习记录(微信自动抢红包原理研究,适配微信8.0)「建议收藏」

偶然一次机会对xposed插件学习记录(微信自动抢红包原理研究,适配微信8.0)「建议收藏」为什么称这次机会纯属偶然?微信的一次大版本更新,朋友圈狂刷表情包新增动画特效的情况下,本着学习年轻人的喜好,融入年轻人生活圈的宗旨(其实我也才刚毕业),我也将微信更新到8.0,在我体验微信8.0

为什么称这次机会纯属偶然?

微信的一次大版本更新,朋友圈狂刷表情包新增动画特效的情况下,本着学习年轻人的喜好,融入年轻人生活圈的宗旨(其实我也才刚毕业),我也将微信更新到8.0,在我体验微信8.0带来的乐趣的同时,我发现我朋友发红包的时候,我竟然不会领了,白白损失几个亿,年末将至,我怕我错过了太多太多红包,此时我抱着一种学习的心态,通过各种方式了解一下原理,然后这时候,我发现我使用的插件,作者 firesun 对插件代码是开源 传送门,有兴趣可以下载去看看,由于我在看源码,发现作者已经很久没更新,此时我就萌生一种想法,也是学习作者的精神,开始了本次的探索。

作者readme的优秀精神

微信自动抢红包目前原理

目前微信自动抢红包分别有两种,一种是通过手机自带的无障碍功能,实现微信自动点击开启红包,此种方式限制较大,也是普遍手机可以拥有的功能,也是通过免root方式可以达到的轻松抢红包原理;另一种方式,则需要提供一个root环境,通过xposed框架进行hook对应功能类的固定操作方法,从而实现快速的抢红包方式,此种方式相对可靠,且速度极快,本次研究对象则采用后者的实现方式,才更加拥有研究意义。

对源码进行分析

其实在接触源码之前,我对其实现方式了解还是很模糊的,首先插件的ui界面进行分析,我发现了生成配置的入口,自然而然,我看作者生成配置的实现方式。
生成配置
前面说过,由于不同版本的微信做了相应的改动,所以需要进行版本适配,至于用处从名称大概可以理解,图片上我就不展示出来,有兴趣可以去自行了解。其实原理大概就是从应用中获取相应的文件,通过功能类的独有特性,例如反编译后经过混淆的类拥有的指定参数类型,类常量等等(反编译不了解的可以去了解一下基础知识),去寻找到我们想要的类,进而再去调用类里我们想要的方法,从而实现免操作抢红包。
解析apk
这里便是生成配置的主要逻辑,寻找出对应我们所需的类,方便我们对接受到红包信息时,进行处理。
在这里插入图片描述
这里对查询得到的类进行保存。
在这里插入图片描述
接下来我们需要寻找的是使用配置的地方,经过简单的分析,可以确定到入口文件如图,对应功能将会分匹配到对应的对象进行处理,我们查看luckmoney类
在这里插入图片描述
通过打印调试信息,并通过模拟器进行红包测试,发现红包消息类型已做更改,因此做一下适配,加了新的红包类型。
在这里插入图片描述
在这里插入图片描述

接着再次进行调试,发现异常信息打印,我们可以确定信息错误出现在handleLuckmoney里面,且报错信息为实例化对象时,没有匹配到对应的构造方法。我们通过xposed提供的方法,对该类所有构造方法进行打印,如何打印请查看xposed开发文档进行了解。经过打印,我们发现构造方法相比原来版本多了一个string类型参数,此时我们加上版本适配,并重新验证,此时我们惊喜的发现,它成功了。没错,本次适配就这样子就完成了,当然流程上是这样,至于如何实现,需要我们对每一个操作原理进行分析,并不是一气呵成,在这里我只是写了基本的流程,实际操作有兴趣可以自行尝试。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

第一次接触,也在上面花了点功夫,又写得不对的地方,互相交流,互相学习。了解好基础的东西,上手起来就快多了,抢红包基本原理的了解,到xposed插件开发文档的学习,一步步也学到了很多东西,也是偶然有空,想起已经很久未更新,便写下最近做的一些琐事。

今天的文章偶然一次机会对xposed插件学习记录(微信自动抢红包原理研究,适配微信8.0)「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/87866.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注