iOS安全攻防(十):微信余额分析

  注:本篇文章仅限于iOS学习,禁止任何商业用途                                        

 本片文章适用于掌握基本逆向工程原理的iOS开发人员阅读


工具:

Reveal: 分析user intergace

已经被class-dump的微信头文件

iPhone越狱手机

1、手机通过USB连接电脑,运行微信,电脑端打开Reveal连接微信(Reveal的使用),如下图

iOS安全攻防(十):微信余额分析_第1张图片

2、打开电脑终端,通过ssh连接手机(手机和电脑在同一网段)

ssh [email protected],输入ssh密码连接

3、输入ps aux | grep WeChat显示微信在手机内存中的信息

4、输入cycript -p WeChat 劫持微信线程

5、接下来需要通过配合使用Reveal来分析微信余额 ,在终端输入

keyWindow = [UIApplication sharedApplication].keyWindow

keyWindow.rootViewController.viewControllers

得到如下四个NavigationController对象

通过分析微信界面可知,对象0x15afa860即为微信'我'的导航栏,接下来实例化导航栏对象

var navi4 = new Instance(0x15afa860)    // 实例化导航栏对象

var moreController = navi4.topViewController// 获取controller

moreController.view.subviews//显示子控件

可以发现,在劫持微信线程后,终端可以使用Objective-C和JavaScript,下面继续使用上面的方法分析,可以看到界面显示的是一个tableView,分析找到tableView的cell

iOS安全攻防(十):微信余额分析_第2张图片

当设置cell的背景颜色后,手机上的显示效果如下

iOS安全攻防(十):微信余额分析_第3张图片

cell找对了,继续分析,下面找到"钱包"界面的类,首先进入"钱包界面"

var indexPath = [tableView indexPathForCell:cell1]    /// 获取cell1的indexPath

[tableView.delegate didSelectRowAtIndexPath:indexPath]  /// 模拟点击cell1

[navi4 popViewControllerAnimated:YES]    // 取"钱包"类名

取到类名为:

实例化WCBizMainViewController

var bizMainController = [[WCBizMainViewController alloc] init]  // 创建WCBizMainViewController对象

[navi4 pushViewController:bizMainController animated:YES]   // push

OK, 成功进入"钱包界面",分析到这里,是不是感觉到我们想获取的信息已经快有眉目了

用Reveal展示一下现在的界面,从图片左边已经可以看到微信余额了,如下图所示

iOS安全攻防(十):微信余额分析_第4张图片

图的左边清晰的展示的微信的框架结构,通过结构可以看出,倘若刚开始时就以此框架来定位余额的话,要简单的多,总之两种定位方法,各有利弊,自己权衡吧

继续分析,输入代码

bizMainController.view.subviews

显示MMTableView和UIView两个子控件,对比Reveal可以看出,我们需要找的"余额"信息在UIView控件里,如下图

iOS安全攻防(十):微信余额分析_第5张图片

继续输入代码

var view = new Instance(0x171717f0)

view.subviews

结合Reveal,找到存储零钱的MMUILabel,如下图所示,text里的十六进制后面显示的就是零钱

ok,成功取到微信余额,是不是很easy


     未经许可,禁止转载

你可能感兴趣的:(iOS安全攻防(十):微信余额分析)