您的位置 首页 kreess

#微信多賬號快速切換# 開發教程

最近玩微信有點多,加上又“申訴”出來一個微信號,這下所有設備加起來都不夠用瞭,於是就想著幹脆象微博一樣能夠自由切換賬號。當然,微信官方是不提供這功能的,但不妨礙我們自己添加

最近玩微信有點多,加上又“申訴”出來一個微信號,這下所有設備加起來都不夠用瞭,於是就想著幹脆象微博一樣能夠自由切換賬號。當然,微信官方是不提供這功能的,但不妨礙我們自己添加。廢話不述瞭,糙快猛直接上吧:

1、class-dump獲取.h文件,第一次見微信代碼的同學該驚嘆瞭:艾瑪,3537個.h,這麼多看都看死瞭。

2、導入xcode,搜login關鍵字試試?還是不提這可怕的結果瞭。再搜login相關的.h文件,還好也就幾十個。其實這時已經能篩選一下瞭:Login+Controller,符合條件的也就沒多少瞭。

3、接reveal,你會很悲催的發現,雖然UI很清晰地看到瞭,但是你依舊不知道對應的.h是誰,甚至連cell都看不出來。所以我才誇微信的代碼寫的“太有特色”瞭。4、接snoop-it,好在method_tracing記下瞭用戶行為,雖然log實在是有點多,好歹是能根據輸入的密碼之類關鍵字逆推,初步定位到WCAccountPhoneLoginControlLogic 、WCAccountLoginControlLogic,再通過語義可以猜到,其實它們隻是Logic,真正對應的UI應該是WCAccountLoginLastUserViewController和WCAccountLoginFirstUserViewController這樣的class5、查看WCAccountLoginLastUserViewController和WCAccountLoginFirstUserViewController,以及相關聯的一系列.h比如,WCAccountLoginLastUserViewController裡的onNext。PS:同學們,這裡寫的雖然輕松,可是在大量的log、代碼中查找可就不是這麼輕松瞭。6、接cycript隨便輸入幾個字符,調用這個onNext函數試試,說明是好使的。7、後面就該是theos的活瞭,代碼已開源,可見https://github.com/iosre/WXAccountSwitcher8、當然,ida是絕對少不瞭的,在調試代碼的過程中,有的函數是需要去看的,以下再對代碼做個說明:1、Tweak_Account.xm,顧名思義,就是用來處理Account的,它hook瞭WCAccountLoginLastUserViewController和WCAccountLoginFirstUserViewController;2、Tweak_Account.xm中引用瞭一系列.h,如下所示:#import "Account/AccountListController.h"#import "Account/WCAccountControlData.h"#import "Account/WCAccountLoginLastUserViewController.h"#import "Account/WCAccountLoginLastUserViewControllerDelegate-Protocol.h"#import "Account/WCAccountLoginControlLogic.h"#import "Account/WCBaseTextFieldItem.h"除瞭AccountListController.h,其它WC前綴的都是微信自己的.h,當然,這些.h直接拿過來是不靈的,要經過裁剪才能build;3、AccountListController是新加的文件,用來顯示賬號列表,以及輔助的一些代碼,另外,它是MRC的,你可以看到裡面一堆的release;4、測試期間,我的密碼是保存在plist裡的,測試通過後就從網上扒瞭開源NSDictionary+Keychain,雖然這個tweak能盯密碼,但是自己編譯過的還是可以放心用吧…好瞭,就這樣吧:)最後,這個deb放出來的時候,build號已經到90瞭,也就是說這個工程打包過90次。當然,從這個tweak的角度,有個10次build應該就能完成調試、測試,咳咳。。。

发表回复

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

返回顶部