前段时间,有人发现只要将无线路由器的WiFi连接名称改为%p%s%s%s%s%n ,那么iPhone的WiFi功能就无法使用,哪怕用户自己手动打开WiFi也会自动关闭,重启手机或更改 WiFi 名都没用。要解决WiFi关闭这个问题,iPhone用户就要重新还原网络设置。
这一BUG是在iOS 14.6上发现的,不过即使在最新的iOS 14.6版本上这一BUG依然存在。 如果不怕自己的iPhone出问题的话,那么各位完全可以在自己的iPhone手机上复现了这一问题。此外,除了WiFi功能会自动关闭之外,还有一些网友发现这个问题还会影响AirDrop的正常使用。
不过这并不是一个个例,越来越多的工程师和用户会发现,即使WiFi连接名称不是这一串字符,而是其他稀奇古怪的字符,那么iPhone同样可能出现这样的问题。所以从理论上而言,应该是有一个WiFi连接中有一个关键字,导致了iPhone的网络出现问题。而随着越来越多的人深入研究,这个导致iPhone无线网络崩溃的罪魁祸首逐渐现出了原形。
现在我们可以相信,当无线路由器的WiFi连接名称中有%这个字符串时,那么iPhone出现的问题可能性就非常大。按照一些分析来看,%这个字符在程序设计语言中通常用于将变数格式化为输出字串。在C语言中,"%n"意味着将写入格式化字串的字元数传递给字串格式化函数的变数中。
而Wi-Fi系统将Wi-Fi网络名称(SSID)未加密地传递给一些正在执行字串格式化的内部程式,导致内存写入和缓冲区溢位,于是有可能会造成内存崩溃的问题,因此iOS的保护机制就把这个命令删除,如此一再反复导致iPhone使用者看到Wi-Fi反复重启。简单来说,iPhone将带有%的连接作为特殊字符串来处理,而不是普通文本。
目前这个问题还没有得到解决,所以不管是啥版本的iPhone遇到这样名称的WiFi连接时,还是会出现问题。不过目前只有iPhone有这个毛病,其他安卓手机则比较正常。如果你想整蛊自己的朋友,只要确定你朋友使用的是iPhone,然后将无线路由器的WiFi名称中多加入“%”的字符串,然后让他连接就行了……只是要注意别让自己的iPhone中招了。
现在大多数人其实并不知道这个BUG,原因也很简单,因为大多数的WiFi连接中都没有这样的字符,也没有多少人去故意将WiFi连接名称设定得这样古怪。不过通过这个事儿倒是可以看出来,苹果在网络安全上也不是无懈可击,很多人也担心这个问题会被一些有心之人利用来攻击iPhone。
对于当下的iPhone用户来说,要避免这样的问题,首先当然是不要连接那些不安全的网络,同时在连接WiFi上网的时候,也要注意看看连接的WiFi名称。至少现在知道这个事儿后,那些带%符号的WiFi连接就可以无视了。当然我们估计苹果也已经注意到这个问题,应该会在接下来的系统更新中解决这个BUG。
关键词:如何搞垮iPhone的无线网络(苹果手机如何破无线网络)