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

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://www.qjnew.com/post/3809.html

分享给朋友:

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

阿尔茨海默病疫苗问世!临床试验有效率达90%

阿尔茨海默病疫苗问世!临床试验有效率达90%

在医学领域,阿尔茨海默病一直是困扰人类的重大难题之一,无数家庭因这种疾病而陷入痛苦与挣扎。如今,一个令人振奋的消息传来——阿尔茨海默病疫苗问世了!并且在临床试验中展现出了高达 90%的有效率,这无疑为阿尔茨海默病患者及其家属带来了希望的曙光。阿尔茨海默病,俗称老年痴呆症,是一种进行性神经系统退行性疾...

李子柒起诉微念!索赔1.2亿,股权纠纷升级

李子柒起诉微念!索赔1.2亿,股权纠纷升级

在如今的社交媒体和商业领域,一场备受瞩目的股权纠纷正逐渐浮出水面,主角便是知名短博主李子柒与微念公司。这场纠纷不仅牵动着众多粉丝的心,也在商业和法律界引发了广泛的关注与讨论。李子柒,以其独特的田园生活风格和精湛的手工制作技艺,在短平台上迅速崛起,成为了全球范围内极具影响力的创作者之一。她的作品以其唯...

共享经济市场模式创新,共享单车、共享汽车市场调整

共享经济市场模式创新,共享单车、共享汽车市场调整

在当今数字化时代,共享经济以其独特的商业模式迅速崛起,为人们的生活带来了诸多便利。共享单车和共享汽车作为共享经济的重要组成部分,曾经在市场上掀起了一股热潮,改变了人们的出行方式。随着市场的不断发展和竞争的加剧,这两个领域也面临着一系列的调整和变革。共享单车市场在早期呈现出爆发式的增长。五颜六色的单车...

咖啡市场扩张迅速,连锁品牌加速开店

咖啡市场扩张迅速,连锁品牌加速开店

在当今的消费市场中,咖啡行业无疑是一颗耀眼的明星,其市场扩张的速度之快令人瞩目,而连锁品牌更是如雨后春笋般加速开店,不断抢占市场份额,引领着咖啡文化的潮流。咖啡市场的扩张迅速,得益于人们生活方式的改变和对品质生活的追求。随着城市化进程的加快,快节奏的生活让人们越来越需要一种能够提神醒脑、放松心情的饮...

健身市场需求增长,线上线下融合成新趋势

健身市场需求增长,线上线下融合成新趋势

在当今社会,随着人们生活水平的不断提高和健康意识的日益增强,健身市场需求呈现出持续增长的态势。越来越多的人开始重视自身的健康,将健身作为日常生活的重要组成部分。线上线下融合的新趋势也在健身领域逐渐兴起,为健身爱好者们带来了更加便捷、多样化的体验。健身市场需求的增长主要体现在以下几个方面。人们对于身体...

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

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

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