這一次,小程演示怎么讓一個(gè)APP自動(dòng)地運(yùn)行,從而代替手工的操作。同樣以“微信”以例,實(shí)現(xiàn)在一個(gè)微信群里面,對(duì)所有的成員,自動(dòng)地一個(gè)一個(gè)地發(fā)出添加好友的請(qǐng)求。
在太倉(cāng)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營(yíng)銷型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),太倉(cāng)網(wǎng)站建設(shè)費(fèi)用合理。知識(shí)點(diǎn)還是之前介紹的東西,流程方面還是跟蹤與最終注入。因?yàn)檫@是一個(gè)系列的文章講解(微信公眾號(hào)“廣州小程” -> 逆向開發(fā)),所以讀者可以聯(lián)系前面的文章來(lái)理解,用自己的話“翻譯”成自己的知識(shí)與經(jīng)驗(yàn)。
本文解決一個(gè)問(wèn)題:如何讓第三方程序自動(dòng)化地運(yùn)行。
(一)批量添加好友的效果
小程使用“奇哥”的賬號(hào),在某個(gè)群里面向所有人請(qǐng)求加好友,程序運(yùn)行的效果是這樣的:
同樣,如果是附近的人,也可以做到自動(dòng)批量地發(fā)出請(qǐng)求:
需要解釋一下,這種批量加好友的行為是被微信限制的,并且會(huì)對(duì)違規(guī)者作出處罰。那加人的限制是怎么樣的?小程在網(wǎng)上找了一個(gè)說(shuō)法,讀者可以了解一下:
2017+微信加人限制規(guī)則:
微信群:最多每天30~50個(gè),保險(xiǎn)是20人,超過(guò)對(duì)方收不到驗(yàn)證信息。
附近的人:15個(gè)每次,每天最多3次,每次之間最少間隔×分鐘;
搖一搖:15個(gè)每次,每天最多3次,每次之間最少間隔×分鐘;
搜索微信號(hào):6個(gè)每次,每天最多5次,每次之間最少間隔×分鐘;
手機(jī)通訊錄:8個(gè)每次,每天最多6次,每次之間最少間隔×分鐘;
漂流瓶:5個(gè)每次,每天最多3次,每次之間最少間隔×分鐘;
主動(dòng)加好友:每天每個(gè)微信號(hào),最多30個(gè);
被動(dòng)加好友:每天每個(gè)微信號(hào),最多180個(gè)。
如果被限制了,會(huì)有什么表現(xiàn)呢?首先,不會(huì)有特別的通知告訴你,但你發(fā)送的請(qǐng)求不會(huì)去到別人那里(如果是在“附近的人”,那就是你可以看到別人,而別人看不到你;你打呼,別人不會(huì)收到。),而且,需要過(guò)一個(gè)星期或更長(zhǎng)時(shí)間,才能正?!敖涣鳌薄?/p>
所以,應(yīng)該慎用批量加好友的功能。
小程在這里只是演示“如何自動(dòng)化”,目的并非加好友。
(二)如何實(shí)現(xiàn)
先是跟蹤目標(biāo)函數(shù)。
(1)群成員列表的界面類是什么?
由此可見,ChatRoomInfoViewController
是一個(gè)目標(biāo),它的結(jié)構(gòu)是這樣的:
注意m_arrMemberList這個(gè)變量,它就是所有群成員的數(shù)組,每一個(gè)成員是一個(gè)CContact。
(2)點(diǎn)擊每一個(gè)群成員
點(diǎn)擊一個(gè)成員,就是調(diào)用- (void)openContactInfo:(id)arg1
這個(gè)函數(shù),傳入的就是成員。
可以想像,只要循環(huán)調(diào)用這個(gè)函數(shù),并傳入不同的成員,就可以達(dá)到批量點(diǎn)擊成員的目的。
(3)觸發(fā)添加成員
點(diǎn)擊成員后,進(jìn)到“成員詳細(xì)資料”頁(yè)面,這個(gè)頁(yè)面所在類是這樣的:
再作一些猜測(cè)與跟蹤,就可以知道,點(diǎn)擊“添加到通訊錄”,觸發(fā)的函數(shù)是
ContactInfoViewController::onSendVerifyMsg。
(4)發(fā)送請(qǐng)求
到了這一步,就是填寫打招呼的內(nèi)容了。一個(gè)好的招呼應(yīng)該是帶上對(duì)方昵稱的,而這個(gè)昵稱可以從成員信息中取得。如果微信的UITextField有長(zhǎng)度限制(有些版本作了限制)的話,還可以重寫文本框的回調(diào)以取消限制。
發(fā)送請(qǐng)求的類:
(三)總結(jié)
小程在這里給出一個(gè)批量自動(dòng)化的思路:
手動(dòng)進(jìn)到群成員列表,然后進(jìn)入自動(dòng)化流程。
在ChatRoomInfoViewController::viewDidLoad完成時(shí),取得m_arrMemberList即成員列表,循環(huán)打開每個(gè)成員。
使用CContact::isMyContact,判斷成員是否已經(jīng)添加過(guò)了,如果是則下一個(gè)成員。
每點(diǎn)擊一個(gè)成員時(shí),設(shè)置一個(gè)變量的狀態(tài),然后進(jìn)入等待,直到這個(gè)變量的狀態(tài)變化,再進(jìn)入下一個(gè)成員的點(diǎn)擊。
點(diǎn)擊成員,進(jìn)入到“詳細(xì)資料”界面,同時(shí),UINavigationController進(jìn)入等待若干秒(比如4秒),若干秒后執(zhí)行返回操作(不管最終是否添加成功)。
進(jìn)入驗(yàn)證界面,在SendVerifyMsgViewController::viewDidLoad時(shí),設(shè)置好UITextField的內(nèi)容,再觸發(fā)onSendVerifyMsg的調(diào)用。
驗(yàn)證如果成功,則驗(yàn)證界面會(huì)自動(dòng)消失,如果失敗(失敗有回調(diào))則需要主動(dòng)調(diào)用一下成功時(shí)的調(diào)用使得驗(yàn)證界面消失。這時(shí)即使有alertview彈框也不影響后續(xù)的操作。
UINavigationController執(zhí)行返回操作,并設(shè)置可以下一個(gè)成員。
ChatRoomInfoViewController執(zhí)行下一個(gè)成員。
總結(jié)
以上所述是小編給大家介紹的iOS逆向開發(fā)之微信自動(dòng)添加好友功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。