iOS安全攻防(十一):截获微信绑定的银行卡号

本人郑重声明:并不鼓励窃取用户隐私等行为,一切hack学习都只是为了研究如何防御

通过文章《iOS安全攻防(十):微信余额分析》,知道了如何对一个App进行分析,下面分析如何获取微信中已经绑定的银行卡信息

腾讯微信在Client和Server之间传输数据是通过RSA加密的,要想解密数据,首先需要获取Client的Private key。
同样的,首先我们劫持微信线程(具体步骤参见iOS安全攻防(十):微信余额分析)

打开Reveal,微信进入"银行卡"界面(微信需要绑定银行卡), 使用Reveal分析此时微信框架结构,如下图所示:


iOS安全攻防(十一):截获微信绑定的银行卡号_第1张图片
Reveal01.png
iOS安全攻防(十一):截获微信绑定的银行卡号_第2张图片
Reveal02.png

在《iOS安全攻防(十)》中,我们分析方法的效率往往不高,在这里,我们配合使用Reveal分析,根据图Reveal01.png目录结构,初始化WCPayCardDetailView控件,找到其子对象。

WCPayCard.png

终端继续初始化UIImageView对象

var imageView = new Instance(0x18e3cbc0)
imageView.subview

此时是不是感到眼前一亮,要找的信息完全展示在我们面前,如下图所示


iOS安全攻防(十一):截获微信绑定的银行卡号_第3张图片
information.png

ok,分析到此,相信很多人都会有疑问,尽管通过上面的步骤可以获取到有限的的银行卡信息,但这些信息都是无关紧要的,好的,下面我们继续分析

现在我们打开class-dump获取的微信头文件,可以看到WeChat有7000多个头文件,搜索WCPayCardDetailView找到相关文件

iOS安全攻防(十一):截获微信绑定的银行卡号_第4张图片
header.png

下一步打开WCPayCardDetailView.h, 看里面都定义了哪些property和function

iOS安全攻防(十一):截获微信绑定的银行卡号_第5张图片
detailView.png

发现了有用信息,函数getinfo, 在终端调用此函数后打印日志:

""

ok, 可能银行卡号、绑定电话号码等信息存储在了WCPayBindCardInfo类的相关属性里,打开WCPayBindCardInfo.h


iOS安全攻防(十一):截获微信绑定的银行卡号_第6张图片
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,成功截获微信绑定的银行卡号和电话号码。

未经允许,禁止转载

你可能感兴趣的:(iOS安全攻防(十一):截获微信绑定的银行卡号)