下面這段字元為什麼會讓手機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.
(篇幅有限,測試時可以將這段字元多複製幾遍)—————————————— 手機QQ上顯示到有這段字元的消息時會卡死並導致程序崩潰,Android版和iOS版QQ都會受到影響。 (這類字元影響範圍比較大,盡量別在QQ群中測試。測試需謹慎!如果被朋友打了,題主概不負責QAQ)
作為題主,昨天被損友坑得很慘 QAQ,不過自己又坑了更多人 233。還是來試著分析下什麼原因吧。
題主用的是Android 5.1,先通過USB調試,看看QQ顯示含有這段字元的消息時都有些什麼Log。發現Log中這兩條消息可能和問題有點關係:
08-10 00:58:17.230: W/linker(15881): libcodecwrapperV2.so has text relocations. This is wasting memory and prevents security hardening. Please fix.08-10 00:58:26.270: I/art(15268): Wrote stack traces to "/data/anr/traces.txt"前面一條Log中記錄的libcodecwrapperV2.so這個庫的確是QQ用的,但是沒有更多Log記錄這個庫相關的信息,它和QQ未響應有什麼關係就不得而知了。(好像剛有什麼線索,但是線索又斷了QAQ)
幸好發現了後面這條Log,Android的ANR(Application Not Responding)將程序未響應時的stack traces記錄到"/data/anr/traces.txt"這個文件。在traces.txt文件中找到了未響應時QQ的主線程在幹什麼(一般來說,Android程序未響應的原因是主線程/UI線程發生阻塞),下面是一部分記錄:
Cmd line: com.tencent.mobileqqDALVIK THREADS (66):"main" prio=5 tid=1 Native(Java_java_util_regex_Matcher_findNextImpl__JLjava_lang_String_2_3I+146)
at java.util.regex.Matcher.findNextImpl(Native method) at java.util.regex.Matcher.find(Matcher.java:358) - locked &<@addr=0x14263840&> (a java.util.regex.Matcher) at com.tencent.mobileqq.text.QQText.a(ProGuard:1355) at com.tencent.mobileqq.text.QQText.&at com.tencent.mobileqq.activity.aio.ChatAdapter1.getItemViewType(ProGuard:173)
at com.tencent.widget.HeaderViewListAdapter.getItemViewType(ProGuard:291) at nvr.b(ProGuard:7608)......據此推斷,QQ未響應的原因可能與長消息解析、正則匹配中的問題有關。這從一定程度上說明了為什麼類似的字元(如:OO00.oo)也會產生同樣的效果,以及為什麼這類字元長度達到一定數量才會產生效果。—————————————— 以上個人推斷僅供參考反饋給手Q項目組的朋友了…
已經在修復。原因我不了解,哈哈哈這串代碼造成手q卡死的原因是是判斷url的正則表達式執行時間過長導致的,安卓和蘋果都會卡頓一段時間,現在問題在修復。
手賤是一種怎樣的體驗?
……
現在一點開QQ界面里我的電腦就卡死(我把這段字元發送到我的電腦里了)……題主你賠錢!!〒_〒實測WP8.1,lumia830 卵事沒有。。複製了10遍
剛才還想發貼吧玩玩 仔細一想後果會很嚴重。。。 有同樣想法的請三思
魅藍NOTE2 實測不卡
經測試,iPhone6和Note3都會卡,一加和刷了CM12.1的G2則不卡,不知道什麼原因。
在電腦上刷屏或者登陸http://wed2qq.com刷屏即可
哎呀,我去!真卡了!
我把這段文字通過郵件分享到QQ群(QQ輕聊版),然後還是可以正常使用,好奇怪
媽蛋我也卡住了,朋友的iPhone也會
卧槽,我發到一個群,結果所有人在手機QQ上都點不了那個群,一點就掛。
MAC下 copy到微信,,, 轉菊花了。。。。。剛才還在大學同學群里發了。,,,mb. 被罵死了。。
求救。。。。。。。
...
推薦閱讀:
※為什麼說android系統沒有IOS系統安全?
※Android 圖標快捷方式和 iOS 3D Touch方式有何不同?未來哪種交互方式更值得推崇?
※為什麼 iOS 漢語拼音鍵盤不把「v」改成「ü」?
※如何評價 iOS 版 Evernote 5.0 的產品重構?
※App 裝得多會讓 iPhone 變卡么?