0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个“黑点”表情,会造成当前程序卡死崩溃?

454398 作者:工程师吴畏 2018-06-13 10:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

几乎每过一段时间,iOS上就会出现一些神秘消息“代码”,发送相关文本将导致系统或者聊天APP崩溃。笔者还记得去年在微信上还出现了,发送“15个句号”导致某些品牌的手机卡死的BUG。其中这些多与系统或者程序的文本渲染器有关,而Youtube UP主Tom Scott发现,安卓上也中招了。

简单来说,如图所示的这个“黑点”表情,发送和接收都没有问题,但当点击它的时候,就会造成当前程序卡死崩溃,老外反馈主要是Whatsapp。

Tom Scott分析后发现,这又是一次Unicode的把戏。Unicode是计算机之间传输文本的国际标准,包含数以万计的字符,并且支持N种语言。

不过,在Unicode之中也有一些隐形的字符,比如定义宽度、定义从左向右(从右向左,阿拉伯/希伯来语使用)、定义连接词、定义高低音的代码。这个黑点的“诡计”就在于,使用OBJ编码后发现,我们看到的黑点之后其实还有一长串字符,编造者使用宽度为0、且定义左右顺序的字符进行了隐藏。

当你点击时,安卓的文本渲染器需要判断你点击的是哪个,这个过程存在BUG,导致程序崩溃。

所以,严格来讲,这是安卓系统的BUG,理论上对于任何安卓消息应用都有效,不仅仅是Whatsapp;第二,其实黑点只是创造者利用的一个表情而已,如果掌握了原理,这个表情可以任意替换。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • iOS
    iOS
    +关注

    关注

    8

    文章

    3400

    浏览量

    155189
  • 安卓
    +关注

    关注

    5

    文章

    2178

    浏览量

    59876
  • BUG
    BUG
    +关注

    关注

    0

    文章

    156

    浏览量

    16225
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    睿擎平台CoreDump实战指南:系统崩溃现场的完美捕获 | 技术解析

    在嵌入式系统开发中,系统崩溃往往是最令人头疼的问题之。当程序突然宕机、出现硬故障或断言失败时,如何快速定位根本原因?CoreDump技术为开发者提供了种「时间冻结」的能力,能在系统
    的头像 发表于 10-29 16:58 3725次阅读
    睿擎平台CoreDump实战指南:系统<b class='flag-5'>崩溃</b>现场的完美捕获 | 技术解析

    关于蜂鸟E203内核中断硬件实现中断嵌套的设计

    开发板:MCU200T 中断机制即处理器核在执行程序指令流的过程中突然被别的请求打断而中止执行当前程序,转而处理别的事情,处理完重新回到之前程序终端的位置继续执行。处理器收到中断请求,保存当前
    发表于 10-23 07:07

    wiznet+w5500程序卡死怎么解决?

    , &arg)函数无效,于是想到手动关闭端口,在link status becomes link down处添加closesocket后程序卡死,进步调试发现在任何地方调用
    发表于 09-10 06:48

    真随机数和伪随机数的区别

    随机数在当前程序运行环境中是种常用参数,目前主要分为两种,伪随机数和真随机数,本期我们就来讲下二者的区别。
    的头像 发表于 08-27 17:46 1869次阅读

    M058多次写入数据闪存崩溃怎么解决?

    我的 m058 没有作系统,W/R dataflash 成功了,但是有问题:写入 dataflash 多次 m058 崩溃,请问如何解决这个问题? 代码如下: int32_t
    发表于 08-27 08:21

    STM32G473进行双bank升级的时候,进行FLASH的批量擦除回卡死是怎么回事?

    我在进行双bank升级的时候,先进行FLASH的批量擦除。在连续的升级过程中发现成功几次后出现了执行擦除flash操作时程序卡死的情况,直观上看灯没有闪烁。成功次数不规律,可能更新2次后才
    发表于 06-18 08:04

    STM32G473 flash擦除时程序卡死,为什么?

    我在进行双bank升级的时候,先进行FLASH的批量擦除。在连续的升级过程中发现成功几次后出现了执行擦除flash操作时程序卡死的情况,直观上看灯没有闪烁。成功次数不规律,可能更新2次后才
    发表于 06-12 08:05

    STM32G473 flash擦除时程序卡死的原因?

    我在进行双bank升级的时候,先进行FLASH的批量擦除。在连续的升级过程中发现成功几次后出现了执行擦除flash操作时程序卡死的情况,直观上看灯没有闪烁。成功次数不规律,可能更新2次后才
    发表于 06-09 07:23

    如何避免存储示波器再次崩溃?

    为避免存储示波器再次崩溃,需从系统维护、硬件管理、操作规范和应急预案四维度构建完整的防护体系。以下是具体措施及实施要点:、系统与软件层面1. 固件与软件管理 定期更新固件 操作:每6
    发表于 05-23 14:47

    国科微荣获前程无忧“2025杰出雇主”称号

    近日,前程无忧2025年人力资源管理杰出奖颁奖盛典暨高峰论坛在厦门举行。在此之前公布的2025人力资源管理杰出奖榜单中,国科微凭借其卓越的人才发展战略、完善的人才培养体系以及多元包容的企业文化,荣获
    的头像 发表于 04-21 17:46 880次阅读

    STM32F103 flash的app区域有上次的残留代码,造成死机怎么解决?

    这样造成什么影响(理论上的)。 当前我这里看到的现象是,在串口发送某项指定的数据时,hardfault了。如果擦除了那段残留的代码,就
    发表于 03-11 07:29

    STM32H743做数字电源,上电后首次进入HRTIM中断卡死怎么解决?

    的时候,开始进入HRTIM中断函数,问题在于首次启动的时候,有时候死机;程序卡死进入HardFault;除了首次之外,(单片机没有掉电)再次启动高压输出或者停止高压的时候就没有问题了; 并且这个单片机
    发表于 03-11 06:51

    在Windows® 11上安装OpenVINO™ 2021.4时,安装程序崩溃了,安装失败怎么解决?

    在 Windows® 11 上安装OpenVINO™ 2021.4 时,安装程序崩溃了,安装失败。
    发表于 03-05 06:50

    KS-Soft:站式集合20TCP/IP实用程序

    IP-Tools 在程序中提供了许多 TCP/IP 实用程序。 这个屡获殊荣的程序可以在Windows XP/7/8/10,Window
    的头像 发表于 02-11 11:09 593次阅读
    KS-Soft:<b class='flag-5'>一</b>站式集合20<b class='flag-5'>个</b>TCP/IP实用<b class='flag-5'>程序</b>

    在ADS822加FIFO测试的时候老是卡死,为什么?

    请问下专家:为什么我在ADS822加FIFO测试的时候老是卡死,基本过程是这样的,我外部提供时钟,分别给ADS822做采样时钟与FIFO的写时钟,程序开始控制FIFO写开启,读关
    发表于 02-06 06:32