本人鄭重聲明:并不鼓勵竊取用戶隱私等行為,一切hack學習都只是為了研究如何防御
通過文章《iOS安全攻防(十):微信余額分析》,知道了如何對一個App進行分析,下面分析如何獲取微信中已經綁定的銀行卡信息
騰訊微信在Client和Server之間傳輸數據是通過RSA加密的,要想解密數據,首先需要獲取Client的Private key。
同樣的,首先我們劫持微信線程(具體步驟參見iOS安全攻防(十):微信余額分析)
打開Reveal,微信進入"銀行卡"界面(微信需要綁定銀行卡), 使用Reveal分析此時微信框架結構,如下圖所示:
在《iOS安全攻防(十)》中,我們分析方法的效率往往不高,在這里,我們配合使用Reveal分析,根據圖Reveal01.png目錄結構,初始化WCPayCardDetailView控件,找到其子對象。
終端繼續初始化UIImageView對象
var imageView = new Instance(0x18e3cbc0)
imageView.subview
此時是不是感到眼前一亮,要找的信息完全展示在我們面前,如下圖所示
ok,分析到此,相信很多人都會有疑問,盡管通過上面的步驟可以獲取到有限的的銀行卡信息,但這些信息都是無關緊要的,好的,下面我們繼續分析
現在我們打開class-dump獲取的微信頭文件,可以看到WeChat有7000多個頭文件,搜索WCPayCardDetailView找到相關文件
下一步打開WCPayCardDetailView.h, 看里面都定義了哪些property和function
發現了有用信息,函數getinfo, 在終端調用此函數后打印日志:
"<WCPayBindCardInfo: 0x18d4ce10>"
ok, 可能銀行卡號、綁定電話號碼等信息存儲在了WCPayBindCardInfo類的相關屬性里,打開WCPayBindCardInfo.h
pleasantly surprised !初始化WCPayBindCardInfo對象
var bindCardInfo = new Instance(0x18d4ce10)
初始化完成后,隨意打印一個相關信息,終端輸入
bindCardInfo.m_bankPhone // 銀行電話
bindCardInfo.m_cardBankName
ok,終端打印了如下信息:
可看出綁定的是招商銀行的卡號,再輸入
bindCardInfo.m_bindPhoneNumber
bingCardInfo.m_cardNumber
終端打印了銀行綁定的手機號和銀行卡號,ok,成功截獲微信綁定的銀行卡號和電話號碼。
未經允許,禁止轉載