一、數(shù)據(jù)庫的導(dǎo)出
拷貝出微信數(shù)據(jù)庫文件
如果安卓手機已root,可使用Root Explorer把微信數(shù)據(jù)庫文件拷貝出來。
具體文件路徑為data/data/com.tecent.mm/MicroMsg/.../EnMicroMsg.db(可在MicroMsg文件下直接搜索EnMicroMsg.db找到)。將EnMicroMsg.db文件拷貝到電腦。
[站外圖片上傳中...(image-4c6c1b-1514991490986)]找尋key打開數(shù)據(jù)庫
數(shù)據(jù)庫拷貝到電腦后是加密的,需要提供key來打開數(shù)據(jù)庫。
key=IMEI(手機序列號)+UIN(用戶信息號)(個人認(rèn)為微信的數(shù)據(jù)庫加密還是做的不錯)
- IMEI的找尋,在手機撥號界面輸入*#06#即可找到IMEI。
[站外圖片上傳中...(image-95cc57-1514991490986)] - UIN的找尋,可使用Root Explorer從data/data/com.tecent.mm/shared_prefs/system_config_prefs.xml中將system_config_prefs.xml文件拷貝到電腦。
[站外圖片上傳中...(image-b0862c-1514991490986)]
在電腦端用notepad++等軟件打開拷貝的system_config_prefs.xml文件,
在default_uin一行的value值即為所需的UIN - 找到了IMEI和UIN就可以計算出其md5值了。在MD5計算器中輸入IMEI+UIN后,計算出md5值選取前七位即可作為key。
md5計算
- 打開數(shù)據(jù)庫
用專用軟件,輸入key打開數(shù)據(jù)庫。
輸入key,打開前面拷貝的db數(shù)據(jù)庫
輸入如下查詢語句,可以查到與所要查找的人的聊天記錄。
select datetime(subStr(cast(m.createTime as text),1,10),'unixepoch', 'localtime') as theTime,
case m.isSend
when 0 then r.nickname
when 1 then '我'end as person,m.content
from message
m inner join rcontact r on m.talker = r.username
where m.type=1 and r.nickname = '對方微信昵稱'

導(dǎo)出聊天記錄,將聊天記錄message信息導(dǎo)出為CSV。


導(dǎo)出message
至此,數(shù)據(jù)庫已導(dǎo)出,后續(xù)內(nèi)容為數(shù)據(jù)清洗與可視化。



