前段時間,有人發現隻要将無線路由器的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。
,