这两天,有一张 gif 图片在群里疯传,就是下面的这张:

样本文件 md5:653b5f03a500b82a3949740d6aedc0f9

安卓版微信在加载这张图的过程中,会出现闪退,而且概率非常高,基本上每次都崩。

迷人的是,这张图只对安卓版微信有效,iOS/Windows/macOS 甚至网页版微信都可以正常显示,当然由于时间方面的原因,我们也没有对安卓版微信的每一个版本进行测试,大家在微信 7.0 上测试过了都会崩溃。

崩溃信息如下:

崩溃地址在 libwechatcommon.so (Java_com_tencent_mm_plugin_gif_MMGIFJNI_drawFramePixels+124),也就是本地 GIF 库在画帧的像素的时候崩溃了。那我们到 libwechatcommon.so 里去看下这个 drawFramePixels 函数的 +124 处长什么样子:

这里应该是个溢出,也可能是个 bug,但是没有源码,很难进一步分析,我们改变思路,看看能不能修好这个 gif。

既然是画 gif 的帧像素的过程中出现的 bug,那我们来看下这个帧,看看能不能找到“罪魁祸首”的那一帧。

打开 gif 的文件格式,可以看到有文件头、屏幕描述、颜色表、具体数据和文件尾。打开即可解析,说明文件格式还是很标准的,这也解释了为什么 iOS/Windows/macOS 和网页版都没问题的原因。

接下来既然是 Frame 的问题,我们来看每一帧,帧的组合在 gif 文件格式中也非常规整,打开 struct DATA Data 就可以看到,每一帧的图形拓展、描述和数据都在里面。

最后观察到一个现象,就是根据微信崩溃的时机,是在图像的加载之初,说明很有可能在第一帧、第二帧就出现问题,我们观察前三帧的异同,发现第二帧的 ImageLeftPosition 有很大的嫌疑。

8166 这个数字明显太大了,我们把它改成 0 之后,再发送出去,发现已经不会崩溃了。

android微信照片,一张能让安卓版微信崩溃的图片相关推荐

  1. android朋友圈动态视频,安卓版微信7.0.5尝鲜,朋友圈可发30秒视频,网友最爱的功能是?...

    原标题:安卓版微信7.0.5尝鲜,朋友圈可发30秒视频,网友最爱的功能是? 微信现在已经是成为人们每天最常使用的聊天工具之一,因此微信的每一次更新和变化都会引起人们的注意.这不,安卓版的微信又悄悄推出 ...

  2. 微信 android 省略号,安卓版微信再现重大Bug,点击链接直接崩溃

    原标题:安卓版微信再现重大Bug,点击链接直接崩溃 [PConline 资讯]微信作为当下即时通信软件,日均活跃用户数量高达10亿人.就是这样一款高活跃度软件,Bug却频频出现. 3月3日,有大量网友 ...

  3. android 8.0发布直播,安卓版微信8.0内测版来了

    原标题:安卓版微信8.0内测版来了 2021年1月21日是微信十周年,微信也第一时间推送了全新的8.0版本,依旧是iOS用户优先,这让不少安卓党羡慕嫉妒恨.不过没有关系,按照以往惯例,安卓内测版会立马 ...

  4. 微信6.5.10版 android,安卓版微信6.5.10版发布:这些新功能你都知道么?

    原标题:安卓版微信6.5.10版发布:这些新功能你都知道么? 对于微信大家都很熟悉吧,之前微信只能在手机上使用,现在电脑版微信也有了,所以大家一般每天都是在刷微信中度过,不是在微信聊天,就是在微信聊天 ...

  5. android微信个人界面设计,安卓版微信主界面的再设计

    聊天界面 前段时间刚刚上手Axure,因为某些契机,根据自己主观需求重新设计了安卓版微信界面.与现在版本区别主要是更加符合安卓的设计原则,同时对"发现"以及"我" ...

  6. android视频播放处理,安卓版微信视频播放全屏处理

    问题 在安卓版微信里,video在播放的时候,如果在没有做任何处理的情况下,微信会全屏播放你的视频,会严重影响一些例如直播之类的边看视频边交互的H5应用(注:在iOS里可以通过playsinline( ...

  7. 谷歌pixel3axl开发者模式_谷歌彻底取消开发者大会!安卓版微信“暗黑模式”要来了...

    谷歌2020年度 I/O开发者大会完全取消 据外媒CNBC报道,由于新冠病毒的持续蔓延,谷歌已经完全取消2020年度的谷歌I/O开发者大会.谷歌曾在3月3日宣布取消谷歌I/O开发者大会现场活动,转为线 ...

  8. 100行微信跳一跳java_安卓版微信跳一跳辅助 跳一跳辅助Java代码

    安卓版微信跳一跳辅助,java实现,具体内容如下 已经看到网上有大神用各种方式实现了,我这是属于简易版ADB命令式实现. 操作方法 1.光标移动到起始点,点击FORM 2.光标移动到目标点,点击TO ...

  9. html5微信视频禁止自动全屏,关于HTML5 video标签在安卓版微信浏览器内被强行全屏播放的问题...

    最近在一个H5项目中,碰到了传说中的video标签在安卓版微信浏览器内被强行全屏播放问题.原计划在视频播放完毕后,页面出现video的ended事件时,应该显示分享和处于转化页的按钮,如图: 然而在这 ...

最新文章

  1. django创建项目案例1详细介绍方法01
  2. mysql中的索引对查询的影响
  3. Java的知识点14——内部类的概念、内部类的分类
  4. Spring MVC架构流程(请求处理流程)
  5. [BUUCTF-pwn]——jarvisoj_test_your_memory
  6. java自适应table_Java 设置Word中的表格自适应的3种方式
  7. matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc
  8. html 图片行内剧中,HTML入门(转义字符、行内样式和块级元素、定位、锚点、跑马灯标签、图片标签、表格标签的讲解)...
  9. 砍掉中国90%的科研人员,对科技发展的影响微乎其微,某教授酒后真言!
  10. 图像增强_MATLAB图像处理之图像增强一
  11. 腾讯专访 | 子芽:代码疫苗技术,赋能数字化应用内生安全自免疫
  12. java转换json格式_java中常见的JSON格式转换方法:
  13. Prolog:list处理(复习笔记)
  14. EF migration conflicted with foreign key constraint
  15. 动画:从 AE 到 Web
  16. Latex带序号的项目符号列表
  17. s一般怎么称呼自己的m_男人一般都这样称呼自己的情人?
  18. 金蝶云苍穹开发实用整理
  19. php fwrite 图片,PHP fwrite( )用法及代码示例
  20. 基于HTTP的简单网络爬虫

热门文章

  1. 机器人学笔记(01):1.绪论
  2. 1004_Median
  3. 《人类简史》笔记二——一场永远的革命
  4. Tomcat开启为什么会秒退
  5. Camera Log 关键字汇总
  6. 【数学】B066_LQ_拯救阿拉德大陆(普通容理 / 进阶(写法疑惑))
  7. 路由器_内网端口映射
  8. 中关村e谷为产业搭台:中关村论坛(空天专场)黑科技亮相现场
  9. MeanShift算法理解
  10. Java课设设计-家庭财务管理系统