iOS逆向开发,突破微信强制升级,让低版本的iPhone也能正常使用 | 您所在的位置:网站首页 › 微信旧版登陆越狱插件下载安装教程 › iOS逆向开发,突破微信强制升级,让低版本的iPhone也能正常使用 |
(1)安装与运行 在网上搜索微信的历史版本,下载一个兼容多开的版本(实际上是bundleID不一样),比如5.0版本。当然也可以通charles等,在AppStore上下载微信旧版本,再重签名。 通过pp助手之类的工具,把旧版本微信安装到手机。 启动微信,登陆账号,遇到这样的提示: 使用版本过低,无法使用。 问题出现了,那怎么解决呢? 小程很自然地猜测,客户端有一个逻辑,是把当前的版本号与服务器返回的版本号作对比,如果发现当前的版本号过低,就提示升级。那么,当前的版本号是怎么获取到的呢,它是不是从一个函数返回的呢?如果小程把这个值改掉会怎么样呢? (2)突破限制同样,先要通过classdump拿到微信的所有类的声明。 然后搜索"version"关键字,对可能是返回版本值的函数进行注入,观察各个地方的输出。 注入的办法,用小程上一篇介绍的iOSOpenDev来做即可,而观察输出则使用之前介绍的socat。 这里给出部分注入的代码的截图: 运行微信时,可以在系统日志中看到这样的输出: Oct 18 15:14:46 yeah MicroMessenger[2506] : -------CUtility::GetVersion in Oct 18 15:14:46 yeah MicroMessenger[2506] : -------CUtility::GetVersion out, ret=352321792 Oct 18 15:14:46 yeah MicroMessenger[2506] : ------->MicroMessengerAppDelegate::didFinishLaunchingWithOptions in 其中,352321792就是当前的版本值。 对CUtility::GetVersion这个函数的返回值作修改,尝试返回452321792(这个值是简单地把最高位加1而来): iOS逆向开发,突破微信强制升级机制,让低版本也能正常使用 再次运行微信,低版本的限制消失了,看到这样的界面: |
CopyRight 2018-2019 实验室设备网 版权所有 |