引發微信閃退的「兩位數字+15個句號」BUG的原理是怎樣的?

在微信中發「兩位數字+15個句號」(另外一說法是任意數字,任意15個標點符號),若是有非小米三星的安卓手機收到,就會卡死,這個BUG的原理是怎樣的?
沒有加號,如直接發「15。。。。。。。。。。。。。。。」就行。java

原由

有人 v2 發了如下內容:
正則表達式


沒想到次日一傳二,二傳四,利用這個 bug 搞怪的人愈來愈多

反應

@ 空寂

哪些機型會卡死

@口貝力微信

  • 米6,OK
  • 蘋果,OK
  • 蘋果,OK
  • 蘋果,OK
  • mate9,卡死
  • 三星,卡死
  • 360,卡死

分析

@kbkaa :華爲已卡死,看了下logcattraces.txt,是這個java.util.regex.Matcher.findNextImpl(Native method)的鍋,好像是正則匹配的問題,估計是把匹配操做放在UI主線程裏了,處理超時致使ANR。多是字符解析超時 5s 就會崩潰。
具體分析請看:爲何「15。。。」會致使微信ANR? - 掘金post

歷史問題

下面這段字符爲何會讓手機QQ未響應?測試

Y.oo.O.oo.z.oo.yY.oo.0.oo.z.oo.0.oo.0.oo.y.oo.z.oo.Z.oo.Z.oo.Y.oo.O.oo.Y.oo.Y.oo.Z.oo.y.oo.O.oo.o.oo.Y.oo.z.oo.y.oo.Y.oo.y.oo.y.oo.Y.oo.o.oo.0.oo.Z.oo.O.oo.o.oo.Y.oo.0.oo.0.oo.y.oo.O.oo.0.oo.Z.oo.z.oo.Y.oo.Y.oo.y.oo.Y.oo.Y.oo.z.oo.Y.oo.Y.oo.Y.oo.0.oo.O.oo.z.oo.y.oo.O.oo.O.oo.0.oo.Y.oo.Y.oo.0.oo.0.oo.o.oo.Z.oo.yY.oo.y.oo.0.oo.o.oo.yY.oo.y.oo.z.oo.0.oo.o.oo.Z.oo.yY.oo.0.oo.yY.oo.yY.oo.o.oo.Y.oo.Y.oo.0.oo.0.oo.Y.oo.z.oo.z.oo.o.oo.yY.oo.o.oo.o.oo.Y.oo.0.oo.z.oo.0.oo.o.oo.Y.oo.O.oo.0.oo.0.oo.y.oo.0.oo.Y.oo.Y.oo.Z.oo.0.oo.0.oo.z.oo.yY.oo.O.oo.o.oo.Y.oo.o.oo.Y.oo.Z.oo.z.oo.y.oo.yY.oo.0.oo.O.oo.Y.oo.O.oo.y.oo.o.oo.yY.oo.Y.oo.o.oo.Z.oo.O.oo.Z.oo.z.oo.Y.oo.y.oo.yY.oo.yY.oo.Y.oo.z.oo.o.oo.yY.oo.O.oo.Y.oo.O.oo.O.oo.O.oo.O.oo.Y.oo. url

(篇幅有限,測試時能夠將這段字符多複製幾遍)
——————————————
手機QQ上顯示到有這段字符的消息時會卡死並致使程序崩潰,Android版和iOS版QQ都會受到影響。 線程

解答

這串代碼形成手機QQ卡死的緣由是是判斷 url 的正則表達式執行時間過長致使的,安卓和蘋果都會卡頓一段時間。code

回顧

  1. 微信在5月份也有一次發動圖就會讓 iPhone 閃退的bug。
  2. 再以前發泰國或者阿拉伯文字卡死

解決辦法

臨時解決辦法cdn

  1. 過一下子從新進入微信,而後刪除聊天記錄。
  2. 或者你們頂過去那條消息

目測是微信官方人員.....
blog

有人說已經修復完成,不知道有沒有掛的人了.....微信的熱修復仍是牛逼啊!(可是不斷有人反饋掛了,等微信官方發佈吧)

補充

在微信羣發相關內容被屏蔽

小米:20。。。。。。。。。。。。。。。。。。。。 仍是會炸...(小米6不會)
魅族:仍是掛...

插播新聞:微信啓動圖片將換成我國衛星成像圖

今天17:00起,手機微信開啓時顯示的地球圖片將從之前的美國衛星成像圖換成風雲四號的成像圖。9月25日至9月28日期間,用戶在微信啓動時,能夠欣賞到由我國新一代靜止軌道氣象衛星「風雲四號」從太空拍攝的祖國全景。這是6年來微信啓動頁面首次發生變化,啓動頁背景中的地球圖片也由非洲大陸上空視角,變化爲了咱們的祖國上空。

相關文章
相關標籤/搜索