ipad9.3.5微信版本低登录不了怎么办?

问题描述:iOS9.3.5系统的iPad mini,下载的老版微信提示版本过低,如下图:

在哪里可以下载到不同版本的微信呢?爱思助手可以下载不同版本的微信吗?如何下载?

设备连接爱思助手,进入应用游戏,找到微信;

如下图,直接点击微信图标进入详情介绍;

在详情页面往下拉,就可以看到不同的微信版本了,选择相应的版本下载即可。

}

在网上搜索微信的历史版本,下载一个兼容多开的版本(实际上是bundleID不一样),比如5.0版本。当然也可以通charles等,在AppStore上下载微信旧版本,再重签名。

通过pp助手之类的工具,把旧版本微信安装到手机。

启动微信,登陆账号,遇到这样的提示:

OS逆向开发,突破微信强制升级机制,让低版本也能正常

使用版本过低,无法使用。

问题出现了,那怎么解决呢?

小程很自然地猜测,客户端有一个逻辑,是把当前的版本号与服务器返回的版本号作对比,如果发现当前的版本号过低,就提示升级。那么,当前的版本号是怎么获取到的呢,它是不是从一个函数返回的呢?如果小程把这个值改掉会怎么样呢?

同样,先要通过classdump拿到微信的所有类的声明。

然后搜索"version"关键字,对可能是返回版本值的函数进行注入,观察各个地方的输出。

注入的办法,用小程上一篇介绍的iOSOpenDev来做即可,而观察输出则使用之前介绍的socat。

这里给出部分注入的代码的截图:
iOS逆向开发,突破微信强制升级机制,让低版本也能正常使用
最终可以确认,CUtility::GetVersion就是目标函数,通过一个公共类来返回版本值,这在设计上是很合理的事情了。

运行微信时,可以在系统日志中看到这样的输出:

其中,就是当前的版本值。

对CUtility::GetVersion这个函数的返回值作修改,尝试返回(这个值是简单地把最高位加1而来):

iOS逆向开发,突破微信强制升级机制,让低版本也能正常使用
再次运行微信,低版本的限制消失了,看到这样的界面:
iOS逆向开发,突破微信强制升级机制,让低版本也能正常使用
身份验证之后,进入到陈旧的5.0界面:
因为微信6.x的bundleID与5.0版本的不一样,这就意味着,同时安装5.0版本与6.x版本的微信是可行的,比如小程就安装了两个(微信多开),运行起来的效果是这样的(录制时的帧率有点低,实际上是两个APP在切换):

}

微信是腾讯公司于2011年推出的一款即时通信软件,应用于安卓、苹果、ipad、电脑等不同的平台,用户通过账号登录手机微信,或扫码登录微信网页版,微信在不断升级的过程中,不断满足不同客户的不同需求,可以单人聊天、群聊,文字、语音、视频等多种方式通话,更有大家喜欢的抢红包、发红包、转账、付款、滴滴打车等功能,手机、ipad平台玩游戏、购物可以快捷支付,致使微信成了人人必备的手机软件,另推荐给大家微信常用工具合集:等,喜欢大家喜欢。

}

我要回帖

更多关于 ipad版本ios9.3.5升级不上去了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信