服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - iOS逆向开发之微信自动添加好友功能

iOS逆向开发之微信自动添加好友功能

2021-05-24 15:37广州小程 IOS

这篇文章主要介绍了iOS逆向开发之微信自动添加好友功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

这一次,小程演示怎么让一个app自动地运行,从而代替手工的操作。同样以“微信”以例,实现在一个微信群里面,对所有的成员,自动地一个一个地发出添加好友的请求。

知识点还是之前介绍的东西,流程方面还是跟踪与最终注入。因为这是一个系列的文章讲解(微信公众号“广州小程” -> 逆向开发),所以读者可以联系前面的文章来理解,用自己的话“翻译”成自己的知识与经验。

本文解决一个问题:如何让第三方程序自动化地运行。

(一)批量添加好友的效果

小程使用“奇哥”的账号,在某个群里面向所有人请求加好友,程序运行的效果是这样的:

iOS逆向开发之微信自动添加好友功能

同样,如果是附近的人,也可以做到自动批量地发出请求:

iOS逆向开发之微信自动添加好友功能

需要解释一下,这种批量加好友的行为是被微信限制的,并且会对违规者作出处罚。那加人的限制是怎么样的?小程在网上找了一个说法,读者可以了解一下:

2017+微信加人限制规则:
 微信群:最多每天30~50个,保险是20人,超过对方收不到验证信息。
 附近的人:15个每次,每天最多3次,每次之间最少间隔×分钟;
摇一摇:15个每次,每天最多3次,每次之间最少间隔×分钟;
搜索微信号:6个每次,每天最多5次,每次之间最少间隔×分钟;
手机通讯录:8个每次,每天最多6次,每次之间最少间隔×分钟;
漂流瓶:5个每次,每天最多3次,每次之间最少间隔×分钟;
主动加好友:每天每个微信号,最多30个;
被动加好友:每天每个微信号,最多180个。

如果被限制了,会有什么表现呢?首先,不会有特别的通知告诉你,但你发送的请求不会去到别人那里(如果是在“附近的人”,那就是你可以看到别人,而别人看不到你;你打呼,别人不会收到。),而且,需要过一个星期或更长时间,才能正常“交流”。

所以,应该慎用批量加好友的功能。

小程在这里只是演示“如何自动化”,目的并非加好友。

(二)如何实现

先是跟踪目标函数。

(1)群成员列表的界面类是什么?

iOS逆向开发之微信自动添加好友功能

由此可见,chatroominfoviewcontroller是一个目标,它的结构是这样的:

iOS逆向开发之微信自动添加好友功能

注意m_arrmemberlist这个变量,它就是所有群成员的数组,每一个成员是一个ccontact。

(2)点击每一个群成员

点击一个成员,就是调用- (void)opencontactinfo:(id)arg1 这个函数,传入的就是成员。

可以想像,只要循环调用这个函数,并传入不同的成员,就可以达到批量点击成员的目的。

(3)触发添加成员

点击成员后,进到“成员详细资料”页面,这个页面所在类是这样的:

iOS逆向开发之微信自动添加好友功能

再作一些猜测与跟踪,就可以知道,点击“添加到通讯录”,触发的函数是

contactinfoviewcontroller::onsendverifymsg。

(4)发送请求

到了这一步,就是填写打招呼的内容了。一个好的招呼应该是带上对方昵称的,而这个昵称可以从成员信息中取得。如果微信的uitextfield有长度限制(有些版本作了限制)的话,还可以重写文本框的回调以取消限制。

发送请求的类:

iOS逆向开发之微信自动添加好友功能

(三)总结

小程在这里给出一个批量自动化的思路:

手动进到群成员列表,然后进入自动化流程。
 在chatroominfoviewcontroller::viewdidload完成时,取得m_arrmemberlist即成员列表,循环打开每个成员。
 使用ccontact::ismycontact,判断成员是否已经添加过了,如果是则下一个成员。
 每点击一个成员时,设置一个变量的状态,然后进入等待,直到这个变量的状态变化,再进入下一个成员的点击。
 点击成员,进入到“详细资料”界面,同时,uinavigationcontroller进入等待若干秒(比如4秒),若干秒后执行返回操作(不管最终是否添加成功)。
 进入验证界面,在sendverifymsgviewcontroller::viewdidload时,设置好uitextfield的内容,再触发onsendverifymsg的调用。
 验证如果成功,则验证界面会自动消失,如果失败(失败有回调)则需要主动调用一下成功时的调用使得验证界面消失。这时即使有alertview弹框也不影响后续的操作。
uinavigationcontroller执行返回操作,并设置可以下一个成员。
chatroominfoviewcontroller执行下一个成员。

总结

以上所述是小编给大家介绍的ios逆向开发之微信自动添加好友功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

原文链接:https://www.cnblogs.com/freeself/p/10715926.html

延伸 · 阅读

精彩推荐
  • IOS解析iOS开发中的FirstResponder第一响应对象

    解析iOS开发中的FirstResponder第一响应对象

    这篇文章主要介绍了解析iOS开发中的FirstResponder第一响应对象,包括View的FirstResponder的释放问题,需要的朋友可以参考下...

    一片枫叶4662020-12-25
  • IOS关于iOS自适应cell行高的那些事儿

    关于iOS自适应cell行高的那些事儿

    这篇文章主要给大家介绍了关于iOS自适应cell行高的那些事儿,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    daisy6092021-05-17
  • IOSiOS通过逆向理解Block的内存模型

    iOS通过逆向理解Block的内存模型

    自从对 iOS 的逆向初窥门径后,我也经常通过它来分析一些比较大的应用,参考一下这些应用中某些功能的实现。这个探索的过程乐趣多多,不仅能满足自...

    Swiftyper12832021-03-03
  • IOSiOS布局渲染之UIView方法的调用时机详解

    iOS布局渲染之UIView方法的调用时机详解

    在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和布局相关的问题,下面这篇文章主要给大家介绍了关于iOS布局渲染之UIView方法调用时机的相关资料...

    windtersharp7642021-05-04
  • IOSiOS中tableview 两级cell的展开与收回的示例代码

    iOS中tableview 两级cell的展开与收回的示例代码

    本篇文章主要介绍了iOS中tableview 两级cell的展开与收回的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    J_Kang3862021-04-22
  • IOSiOS 雷达效果实例详解

    iOS 雷达效果实例详解

    这篇文章主要介绍了iOS 雷达效果实例详解的相关资料,需要的朋友可以参考下...

    SimpleWorld11022021-01-28
  • IOSIOS 屏幕适配方案实现缩放window的示例代码

    IOS 屏幕适配方案实现缩放window的示例代码

    这篇文章主要介绍了IOS 屏幕适配方案实现缩放window的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    xiari5772021-06-01
  • IOSIOS开发之字典转字符串的实例详解

    IOS开发之字典转字符串的实例详解

    这篇文章主要介绍了IOS开发之字典转字符串的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握这样的方法,需要的朋友可以参考下...

    苦练内功5832021-04-01