本文主要記錄手動(dòng)解密微信數(shù)據(jù)庫的過程新思,用于技術(shù)討論和交流窖梁,思路僅供參考,嚴(yán)禁用于不法用途夹囚。
一纵刘、解密實(shí)踐流程
1.對(duì)手機(jī)進(jìn)行root授權(quán)
2.獲取手機(jī)IMEI(MEID)碼
3.獲取微信的uin號(hào)
4.將IMEI(MEID)+uin進(jìn)行MD5,取其前7位(小寫)
- 使用對(duì)EnMicroMsg.db解密(筆者使用的是sqlcipher這個(gè)工具)
下面來具體說說每一個(gè)步驟和相關(guān)的知識(shí)基礎(chǔ):
1)對(duì)手機(jī)進(jìn)行root授權(quán)這一步驟是很重要的荸哟,針對(duì)安卓系統(tǒng)假哎,有很多root授權(quán)工具,比如刷機(jī)精靈鞍历、Kingroot等舵抹,我在測(cè)試過程中使用的是360超級(jí)root(針對(duì)高版本的安卓機(jī)可能會(huì)存在授權(quán)問題,但不是本文的重點(diǎn))劣砍,此外惧蛹,在成功獲得手機(jī)root權(quán)限后,也要給相應(yīng)的應(yīng)用授權(quán)秆剪,這里要找到比較有效的搜索文件的工具(筆者使用的RE文件管理器這個(gè)文件搜索工具)赊淑,不然是沒辦法找到微信的配置權(quán)限文件和數(shù)據(jù)庫文件的,這一步如果不成功仅讽,后續(xù)則無法進(jìn)行,授權(quán)截圖如下:
使用RE文件管理器钾挟,找到關(guān)鍵文件:
默認(rèn)安裝微信的話洁灵,其路徑為:
數(shù)據(jù)庫文件:
data/data/com.tencent.mm/MicroMsg/長(zhǎng)串字母文件夾/EnMicroMsg.db;
配置文件:
data/data/com.tencent.mm/sharedprefs/systemconfig_prefs.xml
2)在其他網(wǎng)絡(luò)文章上大部分說的是解密過程中使用的是IMEI號(hào),我在實(shí)踐測(cè)試的過程中是使用的MEID解密的,筆者猜測(cè)可能和微信的版本有關(guān)系徽千。
獲取方式有多個(gè)
①簡(jiǎn)單粗暴的方法:有些可拆卸的電池苫费,挖開外殼,里面可以看到相應(yīng)的IMEI(MEID)號(hào)
② 在撥號(hào)鍵盤上輸入“*#06#”:
3)微信uin就是user information双抽,是微信用戶信息識(shí)別碼百框,可以認(rèn)為是微信用戶身份標(biāo)識(shí),每個(gè)用戶都是不一樣的牍汹,其獲取方式在此筆者提供兩種:
①使用瀏覽器自帶抓包工具(搜索)可查看
②從第一步獲取的微信的配置文件中獲取
4)使用工具對(duì)字符串進(jìn)行MD5運(yùn)算铐维,取其前7位作為最終的解密密碼
MEID號(hào)(14位)+uin(10位),即輸入24位要hash的字符慎菲,得到加密后的MD5值嫁蛇,如:
得到相應(yīng)的解密密碼:4abf0ca(小寫)
5)使用上述得到的密碼對(duì)EnMicroMsg.db解密
輸入密碼后,最終得到:
聊天記錄保存在message表中露该,將其導(dǎo)出后可以看到詳細(xì)的聊天內(nèi)容:
二睬棚、源碼分析為何是這樣的字符串組合構(gòu)成了密碼
- 前面是實(shí)現(xiàn)的過程,但是如何查看微信數(shù)據(jù)庫的加密方式呢解幼,當(dāng)然是分析其源碼(逆向)
雖然微信的apk做了一定的加固抑党,但是并不影響分析數(shù)據(jù)庫享密碼組成的邏輯,筆者寫這篇文章只是想交流思路撵摆,并無其他惡意新荤,下面簡(jiǎn)單談一下逆向的思路:
工具準(zhǔn)備:
1)安卓版本的微信apk (root手機(jī))
2)靜態(tài)分析工具
https://github.com/skylot/jadx (編譯運(yùn)行)
3)動(dòng)態(tài)調(diào)試工具(Android studio)
- 反編譯weixin.apk:
1)解壓weixin.apk,將classes.dex拷貝到dex2jar工具包下(dex2jar工具原理讀者可以自行網(wǎng)上查閱相關(guān)介紹)
2)使用dex2jar命令生成相應(yīng)的jar包台汇,然后進(jìn)行源碼分析:
- 找到關(guān)鍵的代碼分析和密碼組成原理:
從上面的源碼可以看出苛骨,微信的加密數(shù)據(jù)庫的解密密碼是由“設(shè)備的IMEI(MEID)+用戶的uin,進(jìn)行MD5苟呐,然后取其前7位小寫字母”構(gòu)成的痒芝。