iOS安全攻防(十一):截获微信绑定的银行卡号
本人郑重声明:并不鼓励窃取用户隐私等行为,一切hack学习都只是为了研究如何防御
通过文章《iOS安全攻防(十):微信余额分析》,知道了如何对一个App进行分析,下面分析如何获取微信中已经绑定的银行卡信息
腾讯微信在Client和Server之间传输数据是通过RSA加密的,要想解密数据,首先需要获取Client的Private key。
同样的,首先我们劫持微信线程(具体步骤参见iOS安全攻防(十):微信余额分析)
打开Reveal,微信进入"银行卡"界面(微信需要绑定银行卡), 使用Reveal分析此时微信框架结构,如下图所示:
Reveal01.png Reveal02.png
在《iOS安全攻防(十)》中,我们分析方法的效率往往不高,在这里,我们配合使用Reveal分析,根据图Reveal01.png目录结构,初始化WCPayCardDetailView控件,找到其子对象。
WCPayCard.png终端继续初始化UIImageView对象
var imageView = new Instance(0x18e3cbc0)
imageView.subview
此时是不是感到眼前一亮,要找的信息完全展示在我们面前,如下图所示
information.png
ok,分析到此,相信很多人都会有疑问,尽管通过上面的步骤可以获取到有限的的银行卡信息,但这些信息都是无关紧要的,好的,下面我们继续分析
现在我们打开class-dump获取的微信头文件,可以看到WeChat有7000多个头文件,搜索WCPayCardDetailView找到相关文件
header.png下一步打开WCPayCardDetailView.h, 看里面都定义了哪些property和function
detailView.png发现了有用信息,函数getinfo, 在终端调用此函数后打印日志:
"<WCPayBindCardInfo: 0x18d4ce10>"
ok, 可能银行卡号、绑定电话号码等信息存储在了WCPayBindCardInfo类的相关属性里,打开WCPayBindCardInfo.h
bindInfo01.png
pleasantly surprised !初始化WCPayBindCardInfo对象
var bindCardInfo = new Instance(0x18d4ce10)
初始化完成后,随意打印一个相关信息,终端输入
bindCardInfo.m_bankPhone // 银行电话
bindCardInfo.m_cardBankName
ok,终端打印了如下信息:
bankPhone.png bankName.png
可看出绑定的是招商银行的卡号,再输入
bindCardInfo.m_bindPhoneNumber
bingCardInfo.m_cardNumber
终端打印了银行绑定的手机号和银行卡号,ok,成功截获微信绑定的银行卡号和电话号码。
未经允许,禁止转载