加载异常图片导致系统重启之迷
昨天看到一个贴子 一张图片能让 iOS 系统重启,通过微信等社交软件可以快速进行传播。对这张图片非常感兴趣,于是开始研究,通过分析文件结构,发现 WechatIMG13720 1.jpg 样本文件有三个特点
(1) 对比其他照片多了一个 AROT 的结构,这个结构很可疑,信息如下:
只有 iPhone X 等高端机型拍摄的照片才会有 AROT 结构,而 iPhone 6 等低端的机型拍摄的照片没有 AROT 结构,可能出 iPhone 6 那时苹果还没加这类的功能。
(2) Exif 结构里的 ifdMainImage,找到 ExifTag 为 274, 有一个 usValue,这个值必须要是 1, 有时拍照保存的是 6, 不会触发漏洞,这个值和图片的显示方式有关。
(3) 样本图片之所以显示不完整,是因为scanData 数据被截断,而且没有结束标记,正常的 jpg 图片,最后是有结束标记(FF D9),但是样本文件却没有。
通过以上的三个特点,判断造成系统重启的原因是,由于图片被截断,系统在处理 AROT 结构时发生了错误。如果要构造一个能让系统重启的图片,使用 iPhone X 拍照,用 010 Editor 打开照片文件,查看确认 Exif -> ifdMainImage -> ExifTag(274) -> usValue 为 1, 然后删除最后的结束标记(FF D9),再把 scanData 删掉至少一半的数据,保存为新的图片文件,通过微信等社交软件打开,点击查看原图系统马上重启。
相关参考资料
http://www.hackerfactor.com/blog/index.php?/categories/1-Image-Analysis/P2.html
https://www.media.mit.edu/pia/Research/deepview/exif.html
Author: exchen
原文地址:https://www.exchen.net/ios-jpg-system-crash.html
加载异常图片导致系统重启之迷相关推荐
- 图片加载异常兜底方案
背景 网络环境总是多样且复杂的,一张图片可能会因为网路状况差而加载失败或加载超长时间,也可能因为权限不足或者资源不存在而加载失败,这些都会导致用户体验变差,所以我们需要一个图片加载异常的兜底方案. & ...
- Android加载大图片OOM异常解决
Android加载大图片OOM异常解决 参考文章: (1)Android加载大图片OOM异常解决 (2)https://www.cnblogs.com/jevan/archive/2012/07/05 ...
- 解决ImageLoader加载HTTPS图片证书校验异常问题
解决ImageLoader加载HTTPS图片证书校验异常问题 参考文章: (1)解决ImageLoader加载HTTPS图片证书校验异常问题 (2)https://www.cnblogs.com/cs ...
- 【转载】Android加载大图片OOM异常解决
官方资料: https://developer.android.com/topic/performance/graphics/load-bitmap 思路 先测试未知来源图片的尺寸和MIME文件类型; ...
- 短视频系统源代码,加载本地图片和加载网络图片
在短视频系统源代码中,上传照片时会涉及到加载本地图片或加载网络图片的情况,下面介绍一下相关代码 从布局开始 <?xml version="1.0" encoding=&quo ...
- miui系统负一屏快递详情“显示数据加载异常,请点击重试”的解决方法
miui系统负一屏快递详情"显示数据加载异常,请点击重试"的解决方法 1.下载链接中,后缀为xml和bak的两个快应用服务框架的备份包 2.使用小米,设置 – 本地备份 功能 随便 ...
- Android启动系统自带裁剪功能报错提示——无法加载此图片(已解决)
我们在用系统自带的裁剪功能去裁剪图片的时候经常会报错--无法加载此图片 往往这类报错出现在拍完照之后打开裁剪功能然后就出错了 原因就是在于没有访问的一个权限,需要在启动之前设置权限 通常是创建一个In ...
- Android 系统(167)----Glide加载圆角图片的方法
Glide加载圆角图片的方法 现在在市面上很多App的UI设计都会出现圆角图片的显示.Glide本身也提供了圆角图片的加载方式.但是我们在开发中有可能遇到只要顶部展示圆角,或者某一个角是圆角.这样的需 ...
- Android 高效加载大图片
来源:http://www.open-open.com/lib/view/open1389755918242.html 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状 ...
最新文章
- [技术回顾系列]--认识WebService全貌
- loj#2340. 「WC2018」州区划分
- coursera_ML_1
- 如何充分利用开源项目_5个技巧:在开源项目中利用以用户为中心的设计
- android elf 加固_APK一键自动化加固脚本
- MySQL裸机性能测试(2021)
- 一个非常感人的爱情故事
- 三个视频教你如何找到另一半
- vscode缓存清理
- Keil 中“last line of file ends without a newline”的解决
- java计算机毕业设计特色农产品供需销售系统源码+数据库+系统+lw文档+mybatis+运行部署
- 一个行程问题与对应的数列求和
- Java物流项目第五天 数据聚合服务开发(pd-aggregation)
- 二进制部署Prometheus及监控服务
- OPengl实现小球围绕大球旋转的效果
- java官网以及java官网下载地址
- 练习3-4 统计字符 (15分)
- 1. Jewels and Stones (宝石与石头)
- 数字电子技术考试知识点总结
- zabbix 安装(略)