iPhone又出现诡异的Bug了!
安全研究人员
CarlSchou在推特上公布了自己的发现,当iPhone连接经过特殊构造的SSID(无线网络名称)时,会导致iPhone无线网络功能出现异常。
这个特殊的SSID为%p%s%s%s%s%n。
小编尝试将无线路由器的SSID修改为这个名称,使用iOS14.6系统的iPhone12mini测试。
结果与CarlSchou描述的一致,无线局域网功能无法开启,无法正常上网,需要用到WiFi功能的隔空投送操作也无法进行。
包括iOS14.4.2系统也会出现这一问题,不过小编使用已经升级iOS15测试版的iPhone连接这个网络,会直接提示无法连接,没有引发异常。
iPhone连接这个奇葩的SSID出现Bug,可能的原因是iPhone对SSID名称错误的解析导致。
学习过编程的小伙伴应该了解,“%”在C等语言中不仅仅表示百分号,它还有格式化字符串的作用,iPhone连接“%p%s%s%s%s%n”的SSID后,系统代码内没有将其理解为普通字符串,而是理解成代码进行解析,这就会导致任意的内存写入和缓冲区溢出,从而破坏内存数据。而iOS看门狗机制会终止该进程,导致Wi-Fi功能被禁用。
iPhone错误日志记录
目前已经有工程师定位到会引起Bug的代码:
解决方法
经过测试发现,无法通过重启iPhone来恢复正常,目前唯一有效的方法是还原iPhone网络设置。
在系统设置-通用-还原中,点击还原网络设置,输入iPhone密码会自动重启,进入系统后无线网络功能便恢复正常。
需要注意的是,还原网络设置会清除以前连接过的Wi-Fi和密码、蜂窝网络设置等。
iPhone出现诡异的Bug这已经不是第一次了,最近的一次是在年,一组由意大利国旗Emoji和信德语组成的文字会引起iOS系统闪退或死机。
当时这个Bug被许多人利用来恶搞,不仅影响到了所有的iPhone,连iPad、AppleWatch也未能幸免。
这次出现的特殊WiFi名称导致iPhone无线网络被禁用的Bug,苹果应该会在下一个iOS系统更新中进行修复,在此之前大家看到类似名称(含有多个%百分号)的WiFi尽量不要加入。
iOS