東坡下載:內(nèi)容最豐富最安全的下載站!

幫助|文件類型庫|最新更新|下載分類|排行榜

騰訊QQ其它聊天QQ表情QQ空間購物聊天視頻聊天聊天機器人局域網(wǎng)聊天阿里釘釘騰訊RTX淘寶千牛阿里旺旺

首頁聊天通訊斗圖表情 → 微信閃退gif表情包 gif 最新版

微信閃退gif表情包

微信閃退gif表情包gif 最新版

  • 大。201KB
  • 語言:中文
  • 平臺:WinAll
  • 更新:2017-05-27 10:26
  • 等級:
  • 類型:斗圖表情
  • 網(wǎng)站:暫無
  • 授權:免費軟件
  • 廠商:
  • 產(chǎn)地:國產(chǎn)軟件
好用好玩 50%(0)
坑爹 坑爹 50%(0)
軟件介紹軟件截圖相關軟件軟件教程網(wǎng)友評論下載地址

微信閃退gif表情包,在各個微信群中流傳著一個天線寶寶的GIF表情。在iOS版的微信上,只要打開了包含這個GIF表情的聊天窗口,就會造成微信閃退。

微信閃退背景情況

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

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

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

微信閃退原因分析

1、樣本精簡

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

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

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

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

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

2、調(diào)試分析

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

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

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

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

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

而引起異常的數(shù)據(jù)中,恰好存在0x2C這個關鍵的分隔符,導致下述紅框中的數(shù)據(jù)被解析成了一個ImageDescriptor?梢钥吹,ImageWidth屬性為0,ImageHeight屬性為0x100。

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

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

由于v10 = 0x0000010000000000,截斷成unsigned int后為0,這就導致 v10 – 1 – v21 為負數(shù),作為memset第三個參數(shù),相應的unsigned int形式就是一個很大的正數(shù)。在memset時,就會導致崩潰,這是第二個問題。

PC官方
安卓官方手機版
IOS官方手機版

微信閃退gif表情包截圖

下載地址

微信閃退gif表情包 gif 最新版

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)

編輯推薦

本類軟件必備

約炮QQ微信陌陌交友同城征婚啪啪購物旺旺京東米聊游戲歪歪QTCC

報錯

請簡要描述您遇到的錯誤,我們將盡快予以修正。

轉帖到論壇
輪壇轉帖HTML方式

輪壇轉帖UBB方式