編者按:在手機電子數據取證領域,微信數據提取一直都是行業關注的焦點。自微信正式小程序發布以來,在行業內外引發了高度關注。目前,針對微信小程序數據提取與解析還處于空白階段,市面上還未出現任何可以提取微信小程序數據的軟件或工具,這也給手機取證帶來難題。為此,數據恢復四川省重點實驗室科研人員將以手機中的一些高頻程序為例,講解微信小程序的存儲結構及如何提取。
一、背景介紹
2017年1月9日,萬眾矚目的微信小程序正式發布。微信小程序是一種不需要下載安裝即可使用的應用,用戶只需掃一掃或搜一下即可打開應用。這不僅解決了手機安裝多個應用APP的內存問題,同時也為急需使用某應用的用戶解決了燃眉之急,不用在軟件商店下載安裝,也體現了“用完即走”的理念,用戶不用關心是否安裝太多應用的問題。
【圖1】
二、微信小程序數據提取意義
微信小程序具有無處不在,隨時可用,但又無需安裝卸載等優點,極具普及性及廣泛性。目前,美團外賣、滴滴公交查詢、車來了、大眾點評、京東購物、摩拜單車、滴滴出行、攜程網等高頻使用軟件都已開始進入微信小程序,未來將會有更多的應用軟件進入,甚至完全替代現有網絡應用模式。
微信小程序會記錄當前小程序產生的用戶數據,包括地理位置、聊天記錄、行蹤軌跡等,這些數據在案件偵破中往往可以起到關鍵作用,使案件線索更加明朗,可以提升辦案人員工作效率。目前,市面上的取證工具和軟件,針對的都是對手機應用軟件數據進行直接提取,未發現任何可以支持提取微信小程序數據的軟件或工具,一旦取證過程中需要提取微信小程序里的數據,辦案人員便會束手無策。因此,研究微信小程序的數據分析與提取,對整個電子數據取證行業都有重要指導意義。
三、如何激活微信小程序
1.升級微信到最新版本6.5.3;
2.在微信的第一個頁面的頂端,有一個搜索按鈕,在搜索條里輸入:小程序示例(必須輸入完整,暫不支持模糊搜索),然后搜索;
3.選擇第一個結果,圖標是黑色斜寫的英文字母“S”,點開它,進入后無需任何操作;
4.在微信第一個頁面的末端,就會發現小程序的入口,激活成功;
5.在“發現”里點開小程序,在里面搜索不同的小程序。
備注:具體操作過程,可參考微信小程序大全:http://mp.weixin.qq.com/s/8AjrZdCePhJi5YgiH-fJ0Q
四、微信小程序使用前后的數據變化
微信6.5.3版本(目前最新版本)已攜帶小程序所需環境,appbrand%文件為小程序相關文件,存儲在賬號id下,如圖2。
【圖2】
經數據恢復四川省重點實驗室科研人員分析,AppBrandComm.db為非常規數據庫,通過對其進行解密操作,發現如果未使用小程序的,數據庫內多項表值為空;而使用過小程序的,則會在表中存儲數據。
五、微信小程序數據解析
1.獲取小程序的“安裝”包
首批接受邀請的企業小程序已經上線,由于微信內部對于小程序的大小進行設定(目前大小為一兆),企業只能實現一些簡單功能。在AppBrandComm.db中,某表則存儲了小程序與包名的關聯,如圖3。
【圖3】
2.獲取使用的微信小程序本地存儲數據
微信小程序以key-data的鍵值方式存儲數據。其中,key值指明“程序名——操作”,data值為具體數據,表中標明數據存儲類型。
每項表中每個小程序都有一個wxXXXXXXXXXX++@@@TOTAL@DATA@SIZE@@@值,表明總共數據大小,統計該程序所有key-data的數據大小總和,如圖4。
【圖4】
六、案例實操
為了便于大家更易理解,我們以微信小程序中的高頻軟件——“大致點評”為例,進行實操講解。
1.從AppBrandComm.db中的AppBrandWxaAppInfo表獲取appId、appName,如圖5。
【圖5】
2.從AppBrandComm.db中的AppBrandKVData表獲取key、data、dataType。
KEY值:appId_關鍵詞[如history];
Data:對應的鍵值數據;
如:“大眾點評”的key為“wx734c1ad7b3562129__keyword_history”,對應data為Object類型的關鍵詞搜索歷史,如圖6。
【圖6】
結語:微信小程序試圖創造操作系統中的微型操作系統,顛覆現有的網絡應用模式。無論是網站,還是APP,都將變成微信里的一個小程序。對于手機電子數據取證而言,微信小程序數據提取必將是未來研究的一個重點。本期,數據恢復四川省重點實驗室科研人員講解了如何對微信小程序數據結構進行解析,填補了國內相關領域的空白。目前,此方法已經開始在效率源SPF9139智能手機數據恢復取證系統中進行應用測試,將有助于進一步提升工作效率。