月光博客 » 软件应用 » iPhone修改时间变砖

iPhone修改时间变砖

最近,iOS时间回归Bug在网上闹的沸沸扬扬,不少网友图新鲜,亲身尝试结果不幸中招,据说,DFU也无法修复这个问题。

目前,满足以下条件,进入设置-通用-时间与日期,关闭自动设置,修改时间为1970/1/1,重启设备,“时间回归”Bug就会被触发。具体表现为,设备启动后,卡在苹果Logo,无法进入系统。

系统版本:iOS 8.0 -iOS 9.3 beta 3

硬件设备:搭载64位处理器的设备(即处理器为A7-A9X的设备)

涉及的设备包括:

A7:iPhone 5s、iPad mini 2、iPad mini 3;

A7 variant:iPad Air;

A8:Apple TV 4G、iPad mini  4、iPhone 6、iPhone  6 Plus、iPod Touch 6G;

A8X:iPad Air 2;

A9(三星/台积电):iPhone 6s、iPhone 6s Plus;

A9X:iPad Pro;

目前的解决办法:1、拆机拿掉电池,放置10分钟后重新安装。2、电量充足的情况下,等待数小时,当Unix时间戳的数值大于等于0,系统时间生效,可正常开机。3、拿到苹果售后。

微博网友#Hackl0us给出了该Bug背后的详细原因,感兴趣的同学可以深入了解,主要涉及到UNIX时间戳的问题。

想要真正了解这一bug,您可能需要以下知识。

UNIX时间戳

在确认这件事情的真假前,你需要了解的一个知识是Unix时间戳。

iOS系统时间使用Unix时间戳(Unix epoch)表示(time_t数据类型)。在系统中,使用系统位数个二进制位储存时间。

Unix时间戳规定,UTC时区的1970年1月1日 0点0时0秒的值为0,以秒为单位,即每过一秒,二进制数字加1.

64位处理器的「时间回归」问题

有了刚才的知识储备,现在我们回到正题,开始探讨搭载64位处理器设备的时间bug.

我们说到了以UTC时区的1970年1月1日 0点0时0秒为界限,数值为0,时间正常流逝为正数,反之为负数。不过各位需要留意的是,时间受到时区的影响。

假设一种情况,我原来是北京时区,假设将时间设置到了1970年1月1日 0点0时0秒,那么我将这个时间转换为UTC时间,公式:北京时间 = GMT+8 = UTC+8,那么UTC时间则为1969年12月31日 16时0分0秒。这样就会出现时间负值,即时间回归bug触发,系统启动卡在Kernel阶段,时间错误,无法继续进行启动。

iOS 9.3奇葩BUG:蓝色小圆点

触发bug条件与表现

满足以下条件,「时间回归」bug被触发:

系统版本:iOS 8.0 ~ iOS 9.3 beta 3

硬件设备:搭载64位处理器的设备(即处理器为A7~A9X的设备)

iPhone调到1970年变砖?原理、解救方法来了

进入「设置」-「通用」-「时间与日期」,关闭「自动设置」,并将时间修改为1970年1月1日,分秒任意。

修改时间后,需要重启设备。

Bug触发表现:iOS设备启动时,卡在苹果Logo,无法继续启动。

Bug危害分析

黑客可以利用此bug通过无线局域网发出范围性攻击。

当iOS设备连接到公共网络时,iOS系统将会使用NTP服务对时区、时间进行校准。如果黑客发送恶意的NTP攻击,将iOS系统时间校准至UTC < 0的时间,那么所有用户设备均会受到此bug影响,在重新启动设备后无法使用设备。

更新:在iOS 9.3里,苹果“机智”地解决了之前发生的调整时间到1970变砖问题,具体方法是,在iOS 9.3中,只允许回调到2001年1月1日,如此,则彻底避免了变砖的BUG,不得不说苹果太“机智”了。

iPhone修改时间变砖

顶一下 ▲()   踩一下 ▼()

相关文章

发表留言