婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > GIF心情引發微信閃退?這里有最強技術分析

GIF心情引發微信閃退?這里有最強技術分析

熱門標簽:電話機器人怎么 如何做百度高德地圖標注 領地人生mmo地圖標注 商務彩鈴地圖標注店 蘇州自動外呼系統收費 小語 海洋家園生存島2地圖標注 百度地圖標注進度在哪查看 云南電銷外呼系統原理是什么
 

5 月 17 日擺布,微信群中出現了可使 iOS 版微信閃退的GIF心情,雷鋒網(公眾號:雷鋒網)今早報道了關于該事件的大致情況。 5 月 26 日傍晚, 360 安適研究員宋申雷對雷鋒網體現,微信知道這個漏洞兩周了,但是攔截策略依然不行,第一個crash出現時就對樣本做了hash 攔截,這都兩周了,改一個字節的版本都有多少個了。此外,他還指出,現在不在原圖改字節了,直接把有漏洞的最后一幀構造到任意的GIF中。

為了更好地促進讀者了解其中的機制,360NirvanTeam對于此事件進行了具體的技術分析。

本文作者「 360 涅槃團隊的安適研究員王兆威」,授權雷鋒網發布。

一、配景情況

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

在進行具體分析之前,對瓦解原因進行了猜測:(1)iOS系統自帶GIF解析功能存在問題;(2)微信本身實現GIF解析的功能,由于對輸入數據的校驗不嚴格,導致異常。經過測試,發現iOS版QQ不受影響,因此可以排除iOS的GIF解析問題。

二、原因分析

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。

標簽:珠海 楚雄 遂寧 臺灣 陽泉 鹽城 眉山 西藏

巨人網絡通訊聲明:本文標題《GIF心情引發微信閃退?這里有最強技術分析》,本文關鍵詞  GIF,心情,引發,微信,閃退,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《GIF心情引發微信閃退?這里有最強技術分析》相關的同類信息!
  • 本頁收集關于GIF心情引發微信閃退?這里有最強技術分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 永和县| 自贡市| 石景山区| 乐平市| 克东县| 康保县| 措美县| 青海省| 随州市| 金昌市| 益阳市| 巴马| 务川| 嘉峪关市| 黑龙江省| 大英县| 高雄县| 冷水江市| 乌兰察布市| 柳江县| 娄底市| 宝丰县| 五河县| 沙河市| 陆良县| 白沙| 麻阳| 阳朔县| 乐安县| 赤壁市| 宁德市| 康乐县| 开鲁县| 英吉沙县| 淮南市| 桐城市| 府谷县| 手机| 买车| 巩留县| 霍山县|