当前位置:首页 > 市场动态 > 正文内容

Xposed-微信自动加好友功能实现2--自动跳转验证申请页面

Xposed-微信自动加好友功能实现2--自动跳转验证申请页面

批量添加好友这一行为可能带来风险,要么面临频繁被警告,要么存在被封号的危险,因此,本帖旨在探讨自动加好友的技术途径。

Xposed-微信自动加好友功能实现2--自动跳转验证申请页面 第1张

由于操作失误,手机上的微信已自动升级至最新版本,因此这里以微信7.0.3版本为参照。

在上一章节中,系统实现了自动搜寻并导航至好友资料页面,而本章新增的功能则是在信息页面展示完毕后,自动触发点击操作,以添加好友,并进一步跳转至验证申请界面。

寻找点击事件

在信息展示界面,我们定位到了com.tencent.mm.plugin.profile.ui.ContactInfoUI这一模块,随后使用jadx工具对其进行了深入分析,试图寻找类ContactInfoUI中的点击跳转相关代码,遗憾的是,在代码库中并未发现此类代码,因此我们不得不转变策略。

点击“添加好友”按钮Xposed-微信自动加好友功能实现2--自动跳转验证申请页面,系统将自动跳转至“SayHiWithSnsPermissionUI”验证申请界面,在该页面上,可以查找实现跳转功能的“SayHiWithSnsPermissionUI.class”类。

可以看到有三个方法使用到,简单查看后,进行简单hook

只有EF方法执行

打印如下:

2019年2月27日16时57分24秒,进程ID为3772的线程3772报告:I/Xposed模块中,com.a85.wechatplugin插件在16时57分24秒触发了一次onClick事件,这是针对添加联系人功能的操作。

我们已确认将执行com.tencent.mm.plugin.profile.a包内的EF函数,该函数的参数输出为contact_profile_add_contact。

直接在EF方法中扔出异常:

[Java] 纯文本查看 复制代码

寻找并挂钩方法,针对“com.tencent.mm.plugin.profile.a”这一类,由mlpparam类加载器负责执行。
                    "EF", String.class,
                    new XC_MethodHook() {
                        @Override
在执行被钩子方法之前,需调用此方法,并确保以final修饰的MethodHookParam参数传入,同时处理可能抛出的异常。
在执行方法之前,通过super对象调用beforeHookedMethod方法,并将参数param传递给它。
记录日志("点击事件------1" + 参数数组中的第一个元素);
抛出空指针异常。
                        }
                    });

查看日志

不难观察到其调用流程,首先是由一个项目点击动作触发,紧随其后的是将回调信息发送至ContactInfoUI的a函数,最终流程指向了EF方法的执行。

1.item点击事件

首先,需要关注的是com.tencent.mm.ui.base.preference.MMPreference$2这个类中的OnItemClickListener接口。

主要是对adapter中item数据的判断处理

在onItemClick方法内部,需打印出adapterView获取的适配器所针对的item在索引i处的对象实例的class类型,以及与mKey值相关的信息。

[Java] 纯文本查看 复制代码

寻找并挂钩方法,针对“com.tencent.mm.ui.base.preference.MMPreference$2”,通过mlpparam的类加载器实现。
当点击事件发生时,适配器视图类,视图类,整型以及长整型都将被涉及。
                    new XC_MethodHook() {
                        @Override
                        protected void beforeHookedMethod(final MethodHookParam param) throws Throwable {
                            super.beforeHookedMethod(param);
对象偏好值等于通过参数args中的第一个元素转换为AdapterView后,获取其适配器,再从适配器中获取索引为param.args[2]转换后的整数值对应的项。
记录("点击事件发生——" + 偏好对象的类名 + "等于")
Xposed助手查找类"com.tencent.mm.ui.base.preference.Preference"下的字段"mKey",然后通过mlpparam的类加载器获取该字段,最后使用得到的字段来获取偏好设置。
                            );
                        }
                    });

log日志如下:

2019年3月1日14点05分06秒815毫秒,进程ID为5718的线程5718报告:I/Xposed模块中,com.a85.wechatplugin插件在14点05分06秒时触发onItemClick事件,按钮偏好设置中的contact_profile_add_contact被点击。

观察getItem方法返回的数据类型为ButtonPreference,若需了解preference类别的多样性,请参阅以下内容:

此页面可供参考,无论是否添加了好友微信电脑端怎么加好友,显示联系人信息的界面均称作ContactInfoUI。页面上方设有头像展示区域,下方则是列表视图。值得注意的是,列表中的每个项目所对应的偏好设置类各不相同:发送消息、进行音视频通话以及添加好友等功能均由ButtonPreference按钮偏好设置类实现,而朋友圈功能则由SnsPreference社交偏好设置类负责,至于电话号码则由PhoneNumPreference电话号码偏好设置类来管理。

通过分析日志数据,我们可以发现程序执行过程中调用了MMPreference类中的mo15244a方法,该方法接收MMPreference类自身的xOS属性和preference参数作为输入;这正是ContactInfoUI回调函数中a方法的调用。

2.ContactInfoUI中a方法

依据先前打印出的EF方法参数为contact_profile_add_contact,因此preference.mKey被设置为"contact_profile_add_contact",同时,前一步的打印结果显示preference所属的类为ButtonPreference,这意味着整个回调过程将仅执行this.oHt.mo15424EF(str)这一段代码Xposed-微信自动加好友功能实现2--自动跳转验证申请页面,而mo15424EF方法正是最初定位到的EF方法。

3.EF方法

在初步查看之后微信电脑端怎么加好友,EF方法通过接收到的字符串信息来识别用户点击的是哪个按钮,这可能是用于发送消息的按钮,也可能是用于浏览朋友圈的按钮微信电脑端怎么加好友,亦或是用于添加通讯录的按钮。

依据前一步骤输出的数据,EF算法所采用的参数为contact_profile_add_contact,相应的代码部分如下。

观察之下,代码的篇幅依然颇为庞大,其核心内容主要涉及变量的获取与判断处理,接着便是配置c41857a模块的回调函数,包括mo12226a和mo12227vr两个方法,前者为无需验证即可执行的方法,而后者则需经过验证后方可执行。

至此整个点击过程结束

其实到此我们已经能从这已有的三个方法来实现自动点击了。

我们可以从ContactInfoUI模块中a方法的核心代码片段入手,具体为this.oHt.mo15424EF(str);这一部分,以此来实现自动点击功能,具体代码如下:

[Java] 纯文本查看 复制代码

寻找并钩住与ContactInfoUIClass相关的函数或方法,
                    "onCreate", Bundle.class,
                    new XC_MethodHook() {
                        @Override
                        protected void beforeHookedMethod(final MethodHookParam param) throws Throwable {
                            super.beforeHookedMethod(param);
创建一个新的处理器实例,随后使用该实例调用postDelayed方法,该方法接受一个Runnable对象作为参数。
                                @Override
                                public void run() {
                                    if (!isFromAddFriend) {
                                        return;
                                    }
                                    try {
通过XposedHelper工具,我们找到了ContactInfoUIClass类中的字段"oHt",并将其值赋给对象oHt,该值是通过调用get方法,并传入param对象中的thisObject参数来获取的。
Xposed助手调用了方法,对对象oHt执行了操作,具体是调用"EF"方法,然后在该方法中添加了联系人信息。
捕获到非法访问异常后,{
                                        e.printStackTrace();
                                    }
                                }
                            }, 1000);
                        }
                    });

在展示账户详情界面时,系统会自动调用this.oHt.mo15424EF(str)这一函数。

运行截图如下:

可以看到成功跳转到验证页面。

本文至此告一段落,实际上我最初的目标是探究intent跳转的回调究竟由哪个环节触发。然而,在分析过程中,遇到了极为复杂的情形。大致流程是:用户点击后,系统会弹出一个提示窗口,随后发起一个请求,后台系统会查询该用户是否需要进行验证。接着,系统解析数据并执行回调操作,随后关闭弹窗,并最终跳转至验证页面或直接完成添加好友的操作。分析涉及十几个类别,我反复钻研,力求找到网络请求生成部分的代码,打算通过Xposed自行实现。这一过程让我疲惫不堪,但实则最简便的方法是直接编写点击代码,后续的处理步骤便会顺理成章地连续调用,无需我亲自构建那些过于繁复的方法和变量。

功能实现接近尾声,仅剩发送验证这一环节尚未完成,后续的分析和实现将在下一篇文章中进行探讨。

鉴于本文基于微信7.0.3版本进行解析,其中某些代码与上篇文章有所差异,因此,我在GitHub上提供了全部的代码内容。

请勿对GitHub上的hjw45611用户创建的WechatPlugin项目进行修改。

使用请修改代码内的  "手机号/微信号/QQ号"

加入微信交流群:************ ,请猛戳这里→点击入群

扫描二维码推送至手机访问。

版权声明:本文由全景资讯网发布,如需转载请注明出处。

本文链接:https://qjnew.com/post/3809.html

分享给朋友:

“Xposed-微信自动加好友功能实现2--自动跳转验证申请页面” 的相关文章

王自如被强制执行3383万!格力电器:已开除

王自如被强制执行3383万!格力电器:已开除

《王自如被强制执行 3383 万!格力电器:已开除》在商业的风云变幻中,每一个事件都仿佛是一颗投入平静湖面的石子,激起层层涟漪,引发广泛的关注与讨论。近日,王自如被强制执行 3383 万这一重磅消息,如同一道闪电,瞬间划破了商业天空的宁静,而与之相关的格力电器宣布已开除他的举措,更是犹如一石激起千层...

游戏行业爆款频出,虚拟现实技术应用拓展

游戏行业爆款频出,虚拟现实技术应用拓展

在当今的科技领域,游戏行业正以令人瞩目的速度蓬勃发展,爆款游戏层出不穷,而虚拟现实技术的应用拓展更是为这一行业注入了新的活力与无限可能。游戏行业的爆款频出,一方面得益于技术的不断进步。随着硬件设备的不断升级,如高性能的处理器、高分辨率的屏幕以及更灵敏的操控设备等,使得游戏的画面质量、运行流畅度以及交...

酒店旅游市场服务升级,高端酒店入住率提升

酒店旅游市场服务升级,高端酒店入住率提升

在当今竞争激烈的酒店旅游市场中,服务升级已成为高端酒店提升入住率的关键策略。随着人们生活水平的提高和旅游消费观念的转变,消费者对酒店的要求不再仅仅局限于提供一个住宿的场所,而是更注重整体的体验和服务质量。从硬件设施方面来看,高端酒店纷纷加大投入,进行全面的升级改造。豪华的客房设计、高品质的床上用品、...

玩具市场动漫 IP 衍生品热销,带动行业发展

玩具市场动漫 IP 衍生品热销,带动行业发展

在当今的消费市场中,动漫 IP 衍生品以其独特的魅力和巨大的商业价值,成为了玩具市场的热门品类,同时也有力地带动了整个行业的发展。动漫 IP 衍生品的热销并非偶然。一方面,随着动漫产业的飞速发展,众多优秀的动漫作品如雨后春笋般涌现,这些作品以其精彩的剧情、鲜明的人物形象和丰富的情感内涵,吸引了海量的...

家政服务市场需求旺盛,规范化、专业化成发展方向

家政服务市场需求旺盛,规范化、专业化成发展方向

在当今社会,随着人们生活节奏的加快和生活水平的提高,家政服务市场呈现出前所未有的旺盛需求。无论是繁忙的上班族渴望有人打理家务,还是对生活品质有更高追求的家庭希望得到专业的服务,家政服务都逐渐成为人们生活中不可或缺的一部分。需求的旺盛体现在各个方面。对于双职工家庭来说,工作的压力使得他们无暇顾及家中的...

安防设备市场需求增长,智能安防产品应用广泛

安防设备市场需求增长,智能安防产品应用广泛

在当今社会,随着科技的飞速发展和人们安全意识的不断提高,安防设备市场呈现出持续增长的态势。而在这一增长趋势中,智能安防产品凭借其卓越的性能和广泛的应用,逐渐成为安防领域的主力。安防设备市场需求的增长,源于社会对安全的日益重视。无论是在家庭、商业场所还是公共区域,人们都渴望拥有一个安全可靠的环境。传统...