1. 程式人生 > >【冷知識】安卓微信取證(2)-加密資料解析

【冷知識】安卓微信取證(2)-加密資料解析

640?

ID:Pansafe

1EnMicroMsg.db

EnMicroMsg.db是一個加密的SQLite檔案,加密方式已經公開,解密金鑰為手機IMEI與微信uin組合後計算其MD5值取前7位,因此只要得到手機的IMEI和微信的uin即可解密。這也是眾多手機取證軟體所採用的的方法,這裡不做贅述。

使用sqlcipher開啟EnMicroMsg.db,在彈出的視窗中輸入金鑰,即可看到明文內容。

640?wx_fmt=png

重要資料表及其欄位內容包括:

(1)userinfo:使用者基本資訊,如微訊號(Stevenpi)、暱稱(Steven)、qq郵箱(87*****[email protected])、手機號(186****1128)、QQ號(87*****08)、地區資訊(上海虹口)以及個性簽名、最近一次登入時間(UNIX時間戳)等。

640?wx_fmt=png

(2)userinfo2:其他使用者資訊,與使用功能數量有關,多則可達數百項,主要包括:

最近登入的微信賬號(USERINFO_LAST_LOGIN_USERNAME_STRING);

頭像小圖URL(USERINFO_SELFINFO_SMALLIMGURL_STRING);

首次安裝版本(USERINFO_INSTALL_FIRST_CLIENT_VERSION_INT);

首次安裝時間(USERINFO_INSTALL_FIRST_TIME_LONG);

資料庫大小(USERINFO_HEAVY_USER_REPORT_TYPE_DB_SIZE_LONG);

群組數(USERINFO_HEAVY_USER_REPORT_TYPE_DB_CHATROOM_LONG);

訊息數(USERINFO_HEAVY_USER_REPORT_TYPE_DB_MESSAGE_LONG);

通訊物件數(USERINFO_HEAVY_USER_REPORT_TYPE_DB_CONTACT_LONG);

會話數(USERINFO_HEAVY_USER_REPORT_TYPE_DB_CONVERSATION_LONG)

錢包零錢通餘額(USERINFO_WALLET_LQT_ENTRY_WORDING_STRING);

更新時間(USERINFO_UPDATE_UPDATE_TIME_LONG);

更新版本(USERINFO_UPDATE_UPDATE_VERION_LONG);

最近登入賬號頭像路徑(USERINFO_LAST_LOGIN_AVATAR_PATH_STRING);

最近使用的位置(USERINFO_LAST_LOCATION_STRING);

實名認證(USERINFO_WALLET_RELEAY_NAME_BALANCE_CONTENT_STRING);

面對面收款實名(USERINFO_WALLET_F2F_COLLECT_TRUE_NAME_STRING);

銀行卡明細URL(USERINFO_WALLET_BANKCARD_DETAIL_URL_STRING)。

640?wx_fmt=png

(3)BizChatUserInfo:企業賬號資訊,包括企業賬號ID、名稱、該使用者在企業中的名稱、頭像/簡介/新增成員連結等。

640?wx_fmt=png

(4)MediaDuplication:多媒體檔案資訊,包括檔案的MD5值、大小、路徑和建立時間等。

640?wx_fmt=png

(5)voiceinfo:語音資訊,包括語音檔名稱、語音傳送者微訊號、語音長度以及時間屬性等。

640?wx_fmt=png

(6)ImgInfo2:圖片資訊,包括訊息ID、長度、大圖路徑、縮圖路徑、建立時間、原圖MD5等。

640?wx_fmt=png

(7)videoinfo2:視訊資訊,包括檔名、大小、長度、訊息ID、時間屬性、對應使用者ID(個人或群)等。

640?wx_fmt=png

(8)VideoHash:視訊雜湊,包括視訊檔案的大小、建立時間、原始路徑等。

640?wx_fmt=png

(9)WalletUserInfo:錢包使用者資訊,包括使用者的uin(退出登入的為空)、真實姓名、面對面支付連結、零錢通訊息、認證型別等。

640?wx_fmt=png

(10)WalletLuckyMoney:紅包資訊,包括接收總量、狀態、時間等。

(11)WalletBankcard:錢包銀行卡資訊,包括銀行名稱、銀行卡型別、尾號、單次轉賬限額、單日轉賬限額、轉賬時間等。

640?wx_fmt=png

(12)bottleinfo1:漂流瓶資訊,記錄撿到的所有漂流瓶,包括ID、型別、語音長度、文字內容、建立時間等。

640?wx_fmt=png

(13)bottlemessage:漂流瓶訊息,記錄進入臨時會話視窗的漂流瓶資料,表中內容與上表類似。rbottlecoversation

(14)chatroom:群組,包括群ID、群成員列表(微訊號)、顯示名(預設顯示成員備註名)、群主(微訊號),自己的群內備註名等。奇怪的是,該表中沒有記錄自定義的群名稱和群公告。

640?wx_fmt=png

(15)rconversation:會話,以相同聊天物件的訊息合併為一組,包括會話內訊息數、會話物件ID(含群ID)、未讀訊息數、會話時間、內容等。目前conversation表為空,不再儲存相關資料。

640?wx_fmt=png

(16)message:聊天記錄,包括點對點訊息(傳送者微訊號、訊息內容、時間)和群組訊息(群ID、訊息內容、時間),多媒體檔案儲存路徑等。QQ離線訊息單獨儲存在qmessage表中。

640?wx_fmt=png

(17)ContactLabel:聯絡人標籤,主要記錄自定義的聯絡人分組標籤,包括標籤名、拼音(全稱和縮寫)以及建立時間等。

640?wx_fmt=png

(18)rcontact:通訊物件(與userinfo2中的數量對應),指的是好友、公眾號、小程式及群成員去重後的總和,還包括已經被刪除的曾經好友。主要欄位包括微訊號(ID)、別名、備註名、暱稱等。目前contact表為空,不再儲存相關資料。

640?wx_fmt=jpeg

上表中,type(型別)欄位用於區分物件型別,常見型別對應分類:

0

小程式

1

公眾號

2

群組

3

好友

4

群成員

6

未通過的群好友

7

互為好友的群好友

11

加入黑名單的人

33

微信應用及輔助功能

67

設為星標的好友

256

已刪除的好友

259

不讓對方看我的朋友圈

2049

自己的公眾號

32768

賬號已不存在

32771

可能是小號

65539

不看對方的朋友圈

(19)bottlecontact:漂流瓶聯絡人,專門儲存撿到的漂流瓶主資訊,欄位與上述通訊物件相同。

(20)DeletedConversationInfo:刪除會話資訊,包括會話物件微訊號或群ID、漂流瓶ID及其最近順序。

640?wx_fmt=png

2  enFavorite.db

enFavorite.db檔案的解密金鑰與EnMicroMsg.db相同,同理解密。

640?wx_fmt=png

關鍵資料主要集中在FavSearchInfo和FavItemInfo表中,對應分析可以獲得收藏內容的本地ID、內容、標籤、時間、傳送與接收者等資訊。

640?wx_fmt=png

通過手機取證黃蜂,可以快速友好的獲得上述結果:

640?wx_fmt=png

3  WxFileIndex.db

WxFileIndex.db檔案的解密金鑰也與EnMicroMsg.db相同,同理解密後可以得到如圖所示的內容。

640?wx_fmt=png

640?wx_fmt=png

該檔案記錄了微信聊天涉及的檔案附件的情況,各欄位含義分析如下:

(1)msgId:訊息ID,同一來源的記錄(點對點聊天時的同一個微信賬號或群聊時的同一群)具有同一個ID。

(2)username:傳送者,點對點聊天時對應傳送者微訊號(上圖Stevenpi即為傳送者微訊號),群聊時對應群ID。

(3)msgType:訊息型別,每種檔案對應一個數字,比如語音音訊對應34、圖片對應3、檔案對應49、視訊對應62等等。

(4)msgSubType:訊息子類,用於區分同一型別檔案的多種形態,如圖片的原圖、縮圖、預覽圖等。

(5)path:檔案的儲存路徑。

(6)size:檔案大小,大小為0的情況比較常見的是由於縮圖沒有點開預覽或原圖沒有下載,也有些記錄與微信資料某些生成機制有關。

(7)msgtime:產生該條記錄的時間,通過UNIX時間戳記錄,轉換後可以獲得準確的北京時間。

640?wx_fmt=jpeg

640?wx_fmt=png

相關推薦

知識取證2-加密資料解析

ID:Pansafe1EnMicroMsg.dbEnMicroMsg.db是一個加密的SQLit

知識取證3-資料恢復

ID:Pansafe原創:皮浩1 記錄級恢復大部分使用者刪除微信資料時,只對部分訊息進行鍼對性的

是男人就下100層第一層——高仿介面7

在上一篇《是男人就下100層【第一層】——高仿微信介面(6)》中我們已經對主介面的的各個選單進行了簡單實現,接下來我們完成兩個比較有趣的功能,一個是上部的下彈式選單,另一個是搖一搖功能。效果如下圖:我們先做 一個位於右上方的對話方塊樣子,佈局程式碼很簡單,外面是一個相對佈局,

工程化開發筆記2

設計 說明 規劃 選擇 軟件企業 需求分析 結構 系統 周期 一、軟件生命周期 1、軟件定義期: 軟件定義是由軟件系統分析人員和用戶合作,確定軟件是什麽,針對有待開發的軟件系統進行分析、規劃和規格描述,為今後的軟件開發做準備。 (1)軟件任務立項 (2)項目可行性分析 (3

AI基礎python:openCV——圖像處理2

getTrackbarPos圖像處理練習 制作一個滑動條調色板,使用函數cv2.getTrackbarPos();cv2.creatTrackbar() import cv2 import numpy as np def nothing(x): pass img = np.zeros((300,5

AWS系列鐳速RaySync VS FTP 2- AWS巴西聖保羅到阿裏雲深圳

傳輸 測試 數據 鐳速 測試軟件信息 鐳速RaySync下載地址: Windows Server: https://www.raysync.cn/support_for_windows.html Linux Server: https://www.raysync.cn/support_for

支付2

接著上文,做微信支付(h5)需要微信登入的環節。不多講 在微信登入的時候可以獲取到微信對於的微信的公眾號的唯一標識即openid,這裡我是將獲取的openid存放在使用者表的。需要將他加入引數列表進行生成預支付的訂單號。 話歸正題,微信支付需要做的準備工作。需要登入微信商戶平臺設定好祕鑰。

使用記錄筆記2UI介面,按鈕響應事件

首先需要知道的是,在UI介面中新增好對應的button元件後,裡面會有對應id名稱,我們就是根據這個id名稱來查詢到對應的元件機器屬性。 private Button loadFile; private Button startFunc; 然後在init函式中:(init根據不同工程具體分析

開發2:js sdk分享朋友圈,朋友,獲取config介面注入許可權驗證java

進行微信開發已經一陣子了,從最初的什麼也不懂,到微信授權登入,分享,更改底部選單,素材管理,等。 今天記錄一下微信jssdk 的分享給朋友的功能,獲取config介面注入。 官方文件走一下 簡單說:四步走 1.繫結域名 (注意:設定js安全域名的時候,需

Java中的支付2:API V3 平臺證書的獲取與重新整理

![](https://img2020.cnblogs.com/other/1739473/202010/1739473-20201030090354982-980711550.jpg) ## 1. 前言 在[Java中的微信支付(1):API V3版本簽名詳解](https://mp.weixin.qq

運動刷步助手v9.0免費運動刷步神器

建議 log 註冊 -- tps IT 安卓 BE class 軟件名稱: 刷步助手v9.0【免費安卓微信運動刷步神器】 軟件大小:1.5MB 軟件版本:9.00.0015 軟件描述:刷步助手,一款能修改微信運動步數顯示的軟

開啟X5除錯,使頁面可以在谷歌瀏覽器除錯chrome://inspect/#devices

1.微信瀏覽器開啟:http://debugx5.qq.com2.開啟後選擇以下選項3.開啟微信公眾號頁面4.開啟chrome://inspect/#devices  然後按移動端除錯方式開啟微信公眾號

第一篇HOOK發訊息,當HOOK遇上HOOK。

前人栽樹,後人吃桃。準備入坑 安卓 xposed hook 微信(及時通訊),好吧,第一步當然是論壇裡面搜尋啦,像擲骰子、計步器什麼的都是小孩子過家家入門級別的,當然是要搞就搞(及時通訊)。微信 apk都60多M了,總不能反編譯後全部取看一邊一點一點的摸索吧,那樣的話對於我來

聊天記錄刪除了怎麽恢復

大家現在面對微信的使用已經是越來越熟練了,不過唯一的問題就是在面對數據丟失的時候,該怎們去進行找回和恢復,想要輕松的找回那就先看看介紹吧,安卓微信聊天記錄刪除了怎麽恢復?其實只是需要一款軟件的幫助就可以了,大家先看下面的介紹吧! 互盾安卓恢復大師是一款專門針對安卓手機研發的數據恢復軟件,可用

PHP PC端掃碼支付模式二詳細教程-附帶源碼

idt class pid 方法 按鈕 -c 商戶 開源 玩意兒 博主寫這破玩意兒的時候花了大概快兩天時間才整體的弄懂邏輯,考慮了一下~還是把所有代碼都放出來給大家~抱著開源大無私的精神!誰叫我擅長拍黃片呢?同時也感謝我剛入行時候那些無私幫過我的程序員們! 首先還是

視訊最佳實踐

起因 寫這篇文章是因為在做微信端視訊觀看時出現了很多意料之外的問題,這些問題網上也有很多人碰到,也有一些解決方法,但這些方法,有的不全,有的已經過時。 安卓微信裡播放視訊通常碰到問題是會自動全屏,像下面這樣。造成這種結果的原因是因為在安卓端,微信會使用騰訊開發的x5核心(如果安裝了x5核心的話)來替代安卓

網頁無法使用瀏覽器開啟手機:該證書並非來自可信賴的授權中心

生成二維碼的時候發現網頁無法在微信瀏覽器裡開啟,檢查了二維碼對應的URL連結沒有錯誤,在CHROME裡也能開啟,用安卓自帶的手機瀏覽器開啟時,提示:該證書並非來自可信賴的授權中心。 使用這個SSL檢查站檢查,發現前四項正常,第五項報錯:A valid Root CA Certificate

端h5 頁面 增加 底部導航欄總結

Aphorism grow in errors overview 最近在寫一個 移動端的 jsp 專案, 應專案需求須在安卓機器上實現一個 ios 微信h5頁面 底部的 導航條 想到的實現方案: 通過jsp 寫一個 父頁面然後 每個子頁面通過 include

Python3.6將個人改造成機器人自動對話

原始碼:http://download.csdn.net/download/weixin_37637399/9983454 python版本:Python3.6 前期準備:註冊一個圖靈機器人:http://www.tuling123.com,得到一個APIkey,如下圖。

中播放視訊終於可以不再自動全屏啦

最新的設定安卓視訊不全屏播放(不知道是否全部安卓機型都支援)的方法 前兩天做了一個石頭剪刀布的視訊遊戲專案,測試過程中找到了更加簡便的方法,分享下,如下設定HTML程式碼: <video id="videoID" controls src="XXX" poster="X