1 20 50 150 500
欢迎来到云客软件站,找素材,搜软件,就上云客软件站!
当前位置 >首页 >软件下载 >电脑软件 >聊天软件 >QQ表情

微信闪退王表情

软件信息
  • 分类:QQ表情
  • 大小:201KB
  • 语言: 中文
  • 环境: WinAll
  • 更新:2024-07-11
  • 评级:
  • 系统: Windows Linux Mac Ubuntu
  • 软件类别: 国产软件 / 免费软件 / QQ 表情
  • 插件情况:

微信闪退王表情是最近微信群里流传非常广的一个闪退表情,这个动态表情会让你的微信自动闪退,目前只针对ios系统用户,安卓亲测无效。如果你想跟群里的苹果手机用户开个玩笑可以试试这个表情,绝对让对方摸不着头脑。

闪退表情原理:

1. 样本精简

初始的GIF样本有1MB之多,不利于定位引起问题的具体数据,因此我们需要对样本进行精简。通过010 Editor打开原始样本GIF,利用GIF模板解析,发生解析异常,这就表示样本GIF的格式存在问题。

从模板解析的情况显示,在 38 帧正常的图片数据后,出现了异常的数据。如图所示,因此我们将正常数据部分移除,仅保留异常数据,进行下一步精简。

可以看到,剩余的异常数据的部分有 10 多万个,通过二分法的方式进行测试和排除。具体就是,删除一半后,测试另外一半是否可以导致崩溃。如果崩溃了,说明引起异常的数据在保留的一半中,反之则说明在删除的部分中。

经过不断的排除后,发现异常的数据就在下图的紫色部分中。只要带有GIF的图像数据部分带有这些异常数据,就会导致iOS微信闪退。

2. 调试分析

经过样本精简,我们已经发现了引起异常的数据位置。那么,现在就需要结合实际的调试,来确定实际引起异常的数据。以iOS微信6.5. 7 版为例,崩溃发生时的调用栈如下,崩溃发生于微信内部,说明是微信自身的GIF解析功能存在问题。

经过对相关函数的逆向分析,最终确定了引起异常的数据。首先来观察sub_100B6CBF0 这个函数,对于GIF中的数据进行循环查找,如果存在0x21 和0xF9,那么当前数据就表示是一个GraphicControlExtension结构,并接着对GraphicControlExtension数据进行解析。

如果当前查找到的数据为0x2C,就表示搜索到了一个ImageDescriptor,跳出while循环,进行实际图片数据的解析。这里也就是异常数据的起始位置!

正常的帧数据的ImageDescriptor数据如下:

而引起异常的数据中,恰好存在0x2C这个关键的分隔符,导致下述红框中的数据被解析成了一个ImageDescriptor。可以看到,ImageWidth属性为0,ImageHeight属性为0x100。

接下来,这部分异常的数据就会进入sub_100B6CE90 函数进行解析。由于ImageWidth为0,导致与ImageHeight相乘后等于0,在new buffer时,传入的大小参数为0,这是第一个问题,但这并不会导致闪退,仍然可以分配一个很小的堆块。

引起崩溃的代码如下,在else block中,sub_100B6C4F0 的作用没有具体跟踪,猜测是进行lzw解压缩,并返回解压缩后的数据长度v21。由于v10 = 0x0000010000000000,截断成unsigned int后为0,这就导致 v10 – 1 – v21 为负数,作为memset第三个参数,相应的unsigned int形式就是一个很大的正数。在memset时,就会导致崩溃,这是第二个问题。

微信闪退表情怎么解决:

1.目前GIF图片里插入代码从技术上并非完全不可能,所以可能是有人把会导致ios系统崩溃的代码写入GIF图里导致微信闪退。

2.通过动图的特质让某一个像素点或者分辨率让iphone识别不出来,导致内存溢出,让微信闪退。

其实即使真的遇到类似这种搞骚扰攻击的人也不必太担心,一般人有两种做法。

1.先断网,不要点击进入群组聊天界面,直接左滑或长按对话删除当前群组的聊天记录或者凭借多年的手速进入聊天界面点击右上角退出群聊。

2.登陆电脑端微信,优雅的退群。

下载地址

热门软件

Top