几乎每过一段时间,iOS上就会出现一些神秘消息“代码”,发送相关文本将导致系统或者聊天APP崩溃。还记得去年在微信上还出现了,发送“15个句号”导致某些品牌的手机卡死的BUG。
其中这些多与系统或者程序的文本渲染器有关,国外有网友发现,安卓手机也中招了。
简单来说,如图所示的这个“黑点”表情,发送和接收都没有问题,但当点击它的时候,就会造成当前程序卡死崩溃,老外反馈主要是Whatsapp。
Tom Scott分析后发现,这又是一次Unicode的把戏。Unicode是计算机之间传输文本的国际标准,包含数以万计的字符,并且支持N种语言。
不过,在Unicode之中也有一些隐形的字符,比如定义宽度、定义从左向右(从右向左,阿拉伯/希伯来语使用)、定义连接词、定义高低音的代码。这个黑点的“诡计”就在于,使用OBJ编码后发现,我们看到的黑点之后其实还有一长串字符,编造者使用宽度为0、且定义左右顺序的字符进行了隐藏。
当你点击时,安卓的文本渲染器需要判断你点击的是哪个,这个过程存在BUG,导致程序崩溃。
而这个让安卓手机信息APP秒卡死的“黑点”表情,被证实对iOS同样有效。
在iOS 11.4 Beta 4, 11.3.1, 11.3或者说任何iOS 11/10版本设备上,一旦在信息应用中(比如短信、iMessage)点击到这个表情,就会让该APP立即卡死。
iPhone X中,即便是从后台关掉信息重新进甚至是重启手机,都无法解决。你能做的是,使用3D Touch呼出新建信息,然后退回消息界面,删除掉带表情的那条信息流即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)