幾乎每過一段時間,iOS上就會出現(xiàn)一些神秘消息“代碼”,發(fā)送相關文本將導致系統(tǒng)或者聊天APP崩潰。筆者還記得去年在微信上還出現(xiàn)了,發(fā)送“15個句號”導致某些品牌的手機卡死的BUG。其中這些多與系統(tǒng)或者程序的文本渲染器有關,而Youtube UP主Tom Scott發(fā)現(xiàn),安卓上也中招了。
簡單來說,如圖所示的這個“黑點”表情,發(fā)送和接收都沒有問題,但當點擊它的時候,就會造成當前程序卡死崩潰,老外反饋主要是Whatsapp。
Tom Scott分析后發(fā)現(xiàn),這又是一次Unicode的把戲。Unicode是計算機之間傳輸文本的國際標準,包含數(shù)以萬計的字符,并且支持N種語言。
不過,在Unicode之中也有一些隱形的字符,比如定義寬度、定義從左向右(從右向左,阿拉伯/希伯來語使用)、定義連接詞、定義高低音的代碼。這個黑點的“詭計”就在于,使用OBJ編碼后發(fā)現(xiàn),我們看到的黑點之后其實還有一長串字符,編造者使用寬度為0、且定義左右順序的字符進行了隱藏。
當你點擊時,安卓的文本渲染器需要判斷你點擊的是哪個,這個過程存在BUG,導致程序崩潰。
所以,嚴格來講,這是安卓系統(tǒng)的BUG,理論上對于任何安卓消息應用都有效,不僅僅是Whatsapp;第二,其實黑點只是創(chuàng)造者利用的一個表情而已,如果掌握了原理,這個表情可以任意替換。
-
iOS
+關注
關注
8文章
3399瀏覽量
153107 -
安卓
+關注
關注
5文章
2155瀏覽量
58706 -
BUG
+關注
關注
0文章
156瀏覽量
16025
發(fā)布評論請先 登錄
STM32G473進行雙bank升級的時候,進行FLASH的批量擦除回卡死是怎么回事?
STM32G473 flash擦除時程序卡死,為什么?
STM32G473 flash擦除時程序卡死的原因?
如何避免存儲示波器再次崩潰?
國科微榮獲前程無憂“2025杰出雇主”稱號
STM32F103 flash的app區(qū)域有上一次的殘留代碼,會造成死機怎么解決?
STM32H743做數(shù)字電源,上電后首次進入HRTIM中斷卡死怎么解決?
在Windows? 11上安裝OpenVINO? 2021.4時,安裝程序崩潰了,安裝失敗怎么解決?
在ADS822加FIFO測試的時候老是卡死,為什么?
ads1278在上電正常使用時偶爾也會造成電流過大溫度過高的情況,具體可能是什么造成的呢?
AT32F407在USART2 DMA發(fā)送數(shù)據時,接包接到了要發(fā)送的數(shù)據,程序還是處于等待傳輸完成的標識判斷中,為什么?
微軟拼音輸入法導致KiCad卡死

評論