女人让男人桶30分钟,黑人狂躁日本艳妇a片软件下载,美国色黄xxx大片,娇妻系列交换 纯肉高h

您現(xiàn)在的位置:海峽網(wǎng)>新聞中心>IT科技>科技數(shù)碼
分享

5月17日左右,微信群中出現(xiàn)了可使iOS版微信閃退的GIF表情。

5月26日傍晚,360安全研究員宋申雷對表示,微信知道這個(gè)漏洞兩周了,但是攔截策略依然不行,第一個(gè)crash出現(xiàn)時(shí)就對樣本做了hash 攔截,這都兩周了,改一個(gè)字節(jié)的版本都有多少個(gè)了。

此外,他還指出,現(xiàn)在不在原圖改字節(jié)了,直接把有漏洞的最后一幀構(gòu)造到任意的GIF中。

為了更好地促進(jìn)讀者了解其中的機(jī)制,360NirvanTeam對于此事件進(jìn)行了具體的技術(shù)分析。

一、背景情況

5月17日起,在各個(gè)微信群中流傳著一個(gè)天線寶寶的GIF表情。在iOS版的微信上,只要打開了包含這個(gè)GIF表情的聊天窗口,就會(huì)造成微信閃退。

在進(jìn)行具體分析之前,對崩潰原因進(jìn)行了猜測:(1)iOS系統(tǒng)自帶GIF解析功能存在問題;(2)微信自己實(shí)現(xiàn)GIF解析的功能,由于對輸入數(shù)據(jù)的校驗(yàn)不嚴(yán)格,導(dǎo)致異常。

經(jīng)過測試,發(fā)現(xiàn)iOS版QQ不受影響,因此可以排除iOS的GIF解析問題。

二、原因分析

1、樣本精簡

初始的GIF樣本有1MB之多,不利于定位引起問題的具體數(shù)據(jù),因此我們需要對樣本進(jìn)行精簡。通過010 Editor打開原始樣本GIF,利用GIF模板解析,發(fā)生解析異常,這就表示樣本GIF的格式存在問題。

從模板解析的情況顯示,在38幀正常的圖片數(shù)據(jù)后,出現(xiàn)了異常的數(shù)據(jù)。如圖所示,因此我們將正常數(shù)據(jù)部分移除,僅保留異常數(shù)據(jù),進(jìn)行下一步精簡。

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

可以看到,剩余的異常數(shù)據(jù)的部分有10多萬個(gè),通過二分法的方式進(jìn)行測試和排除。具體就是,刪除一半后,測試另外一半是否可以導(dǎo)致崩潰。

如果崩潰了,說明引起異常的數(shù)據(jù)在保留的一半中,反之則說明在刪除的部分中。

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

經(jīng)過不斷的排除后,發(fā)現(xiàn)異常的數(shù)據(jù)就在下圖的紫色部分中。只要帶有GIF的圖像數(shù)據(jù)部分帶有這些異常數(shù)據(jù),就會(huì)導(dǎo)致iOS微信閃退。

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

2、調(diào)試分析

經(jīng)過樣本精簡,我們已經(jīng)發(fā)現(xiàn)了引起異常的數(shù)據(jù)位置。那么,現(xiàn)在就需要結(jié)合實(shí)際的調(diào)試,來確定實(shí)際引起異常的數(shù)據(jù)。

以iOS微信6.5.7版為例,崩潰發(fā)生時(shí)的調(diào)用棧如下,崩潰發(fā)生于微信內(nèi)部,說明是微信自身的GIF解析功能存在問題。

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

經(jīng)過對相關(guān)函數(shù)的逆向分析,最終確定了引起異常的數(shù)據(jù)。首先來觀察sub_100B6CBF0這個(gè)函數(shù),對于GIF中的數(shù)據(jù)進(jìn)行循環(huán)查找,如果存在0x21和0xF9,那么當(dāng)前數(shù)據(jù)就表示是一個(gè)GraphicControlExtension結(jié)構(gòu),并接著對GraphicControlExtension數(shù)據(jù)進(jìn)行解析。

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

如果當(dāng)前查找到的數(shù)據(jù)為0x2C,就表示搜索到了一個(gè)ImageDescriptor,跳出while循環(huán),進(jìn)行實(shí)際圖片數(shù)據(jù)的解析。這里也就是異常數(shù)據(jù)的起始位置!

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

正常的幀數(shù)據(jù)的ImageDescriptor數(shù)據(jù)如下:

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

而引起異常的數(shù)據(jù)中,恰好存在0x2C這個(gè)關(guān)鍵的分隔符,導(dǎo)致下述紅框中的數(shù)據(jù)被解析成了一個(gè)ImageDescriptor。可以看到,ImageWidth屬性為0,ImageHeight屬性為0x100。

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

接下來,這部分異常的數(shù)據(jù)就會(huì)進(jìn)入sub_100B6CE90函數(shù)進(jìn)行解析。由于ImageWidth為0,導(dǎo)致與ImageHeight相乘后等于0,在new buffer時(shí),傳入的大小參數(shù)為0,這是第一個(gè)問題,但這并不會(huì)導(dǎo)致閃退,仍然可以分配一個(gè)很小的堆塊。

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

引起崩潰的代碼如下,在else block中,sub_100B6C4F0的作用沒有具體跟蹤,猜測是進(jìn)行l(wèi)zw解壓縮,并返回解壓縮后的數(shù)據(jù)長度v21。

由于v10 = 0x0000010000000000,截?cái)喑蓇nsigned int后為0,這就導(dǎo)致 v10 – 1 – v21 為負(fù)數(shù),作為memset第三個(gè)參數(shù),相應(yīng)的unsigned int形式就是一個(gè)很大的正數(shù)。在memset時(shí),就會(huì)導(dǎo)致崩潰,這是第二個(gè)問題。

一個(gè)GIF表情搞死微信!最強(qiáng)技術(shù)分析在此

三、總結(jié)

這個(gè)問題的根本原因是微信實(shí)現(xiàn)了自己的GIF解析功能,但由于對輸入數(shù)據(jù)的校驗(yàn)不嚴(yán)格,導(dǎo)致異常的數(shù)據(jù)被解析,引起崩潰。

在5月17日當(dāng)天,這個(gè)GIF開始流傳后,微信似乎在服務(wù)器端做了屏蔽,使得這個(gè)GIF無法被正常接收,但我們只要隨便修改一下GIF中的任意一個(gè)字節(jié),就能繞過這個(gè)屏蔽措施。

同時(shí)由于iOS應(yīng)用上架需要經(jīng)過蘋果審核,需要額外耗費(fèi)一定時(shí)間,這就使得這個(gè)Bug即使修復(fù)后,所有用戶也無法立刻更新。

目前最新的iOS微信6.5.8版本仍然存在崩潰的問題。

責(zé)任編輯:海凡

最新科技數(shù)碼 頻道推薦
進(jìn)入新聞?lì)l道新聞推薦
SHEIN“養(yǎng)貓”計(jì)劃曝光:創(chuàng)建數(shù)千機(jī)器
進(jìn)入圖片頻道最新圖文
進(jìn)入視頻頻道最新視頻
一周熱點(diǎn)新聞
下載海湃客戶端
關(guān)注海峽網(wǎng)微信
?

職業(yè)道德監(jiān)督、違法和不良信息舉報(bào)電話:0591-87095414 舉報(bào)郵箱:service@hxnews.com

本站游戲頻道作品版權(quán)歸作者所有,如果侵犯了您的版權(quán),請聯(lián)系我們,本站將在3個(gè)工作日內(nèi)刪除。

溫馨提示:抵制不良游戲,拒絕盜版游戲,注意自我保護(hù),謹(jǐn)防受騙上當(dāng),適度游戲益腦,沉迷游戲傷身,合理安排時(shí)間,享受健康生活。

CopyRight ?2016 海峽網(wǎng)(福建日報(bào)主管主辦) 版權(quán)所有 閩ICP備15008128號(hào)-2 閩互聯(lián)網(wǎng)新聞信息服務(wù)備案編號(hào):20070802號(hào)

福建日報(bào)報(bào)業(yè)集團(tuán)擁有海峽都市報(bào)(海峽網(wǎng))采編人員所創(chuàng)作作品之版權(quán),未經(jīng)報(bào)業(yè)集團(tuán)書面授權(quán),不得轉(zhuǎn)載、摘編或以其他方式使用和傳播。

版權(quán)說明| 海峽網(wǎng)全媒體廣告價(jià)| 聯(lián)系我們| 法律顧問| 舉報(bào)投訴| 海峽網(wǎng)跟帖評(píng)論自律管理承諾書

友情鏈接:新聞?lì)l道?| 福建頻道?| 新聞聚合
主站蜘蛛池模板: 比如县| 襄汾县| 阿拉尔市| 南江县| 扶风县| 和硕县| 历史| 清镇市| 理塘县| 泾源县| 万载县| 临泉县| 麟游县| 明水县| 岱山县| 五峰| 建宁县| 乐山市| 阿合奇县| 二连浩特市| 武陟县| 攀枝花市| 陕西省| 卓尼县| 普定县| 永靖县| 昭苏县| 明溪县| 余姚市| 常州市| 饶阳县| 柞水县| 正定县| 江油市| 富顺县| 绍兴县| 遂平县| 通道| 方城县| 水城县| 修文县|