微信Dat檔案解碼

data-life發表於2020-12-27

最近在整理磁碟檔案,因為經過一段時間的蹂躪後,磁碟實在是太多東西了,不整理一下,簡直對不住我的SSD好嘛。偶然發現磁碟中某公司的資料夾佔用空間簡直不能再大,

那可是我的C盤啊,合計才119GB的SSD空間,你給我佔了差不多10個G,說的就是你Tencent。

enter description here

 

  

但是也不能怪人家,畢竟人家只是負責將資料儲存下來方便給我們展示而已。所以,就冒著好奇的心,看看資料夾裡面有什麼。
因為這次的主題說的是Dat檔案的解密,我就不扯那麼遠。 
大家假裝知道我點完資料夾,看到很多歷史圖片快取圖片眾多*.db就好了哈。
(PS:不得不提的是騰訊將近給我快取了6個G的表情包,未來可以收集這個內容做一個隨機表情包網頁出來樂呵樂呵呀。咳咳這些都是後話啦)
然後我們便來到了微信PC版的資料夾,找到自己的賬號所在資料夾。比如我的是CBR-1997。找到後,如下所示

 

enter description here

 

這個時候,我便猜測,這些dat檔案都是什麼內容呢?聊天內容?不可能呀,聊天內容這麼機密,肯定是放到db裡面加密處理的。

聊天檔案?也不至於有1700+個檔案吧。

所以,綜上,猜測這些個dat檔案都是一些聊天時接收到的“表情包”或者“圖片”。嗯,平時那些群聊鬥圖這麼凶,估計沒錯了的。
enter description here


接下來,嘗試直接改字尾試試。不出意外的得到了“圖片錯誤”,我就知道不會這麼簡單。。。


enter description here

 

那接下來怎麼辦嘛。思來想去,便想著拿16進位制編輯器看一下下,裡面資料長啥樣。
開啟了多個檔案看到裡面檔案頭是8A AD ,但是一般jpg檔案的檔案頭為FF D8 開頭的。
又記得之前看過說文通過異或對檔案進行簡單的加解密的很常規的做法。
所以,開啟計算器。一頓操作猛如虎,哈哈哈,結果一看沒錯遼,

 

enter description here

 

將計算器調整到程式設計師模式,然後使用FFD8與8AAD進行異或處理。
結果為7575,顯然可以知道,這個dat就是微信將收取到的檔案對嗎,每個位元組進行異或0x75進行加密,儲存為dat檔案。
這個時候,只要用Python寫個指令碼,不就可以輕鬆解碼了嘛。

來來來,程式碼寫起來。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

# -*- coding: utf-8 -*-

# @Time    : 3/27/2019 21:54

# @Author  : MARX·CBR

# @File    : 微信Dat檔案轉圖片.py

 

import os

 

import os

 

out_path=r"D:\\"

 

def imageDecode(f,fn):

    dat_read = open(f, "rb")

    # out='P:\\'+fn+".png"

    out=out_path+fn+".png"

    png_write = open(out, "wb")

    for now in dat_read:

        for nowByte in now:

            newByte = nowByte ^ 0x33

            png_write.write(bytes([newByte]))

    dat_read.close()

    png_write.close()

 

def findFile(f):

    fsinfo = os.listdir(f)

    for fn in fsinfo:

        temp_path = os.path.join(f, fn)

        if not os.path.isdir(temp_path):

            print('檔案路徑: {}' .format(temp_path))

            print(fn)

            imageDecode(temp_path,fn)

        else:

            ...

 

# path = r'C:\Users\輸入自己微信儲存路徑\Data'

# findFile(path)

 

# path = r'E:\\'

findFile(path)

  

 

跑出來的結果如下圖,沒錯吧,以往的表情包,發過收過的圖片都出現在了裡面。
至此微信dat檔案的復原解碼到此就完成了。
補充一下,每個賬號或者客戶端對那個異或值都是不一樣的,所以,小夥伴們如果需要還原dat檔案的話,還是要自己用計算器異或處理一波哦。看看這個值是多少哈。

 

enter description here

 

 

微信dat是用什麼軟體開啟?微信dat是什麼?如何檢視呢?

別的不多說,先上工具地址,下邊的慢慢看。

點選 微信dat線上解碼 進入微信dat解碼工具頁面,開始使用。


接下來就是老生常談了。

微信的dat檔案是微信用於快取PC端微信的圖片,然後對圖片進行了加密的處理。所以是可以刪除的,有些朋友data資料夾下有十幾G的,都是可以刪除的,但是最好確保這些檔案都已經沒有用處了再進行刪除。

如果大家常用微信辦公,很可能會發現微信的資料夾佔據著磁碟的大量空間,如果仔細查詢的話,還會發現有非常非常之多的dat檔案,觀察仔細的同學會知道,這些dat檔案都是圖片,在聊天的時候產生的,但是呢..卻無法使用正常的看圖軟體開啟。

大家可能不知道,我們常用的圖片,比如jpeg png等檔案都是有固定的資料格式的,微信將圖片進行了異或加密,每個位元組都異或一個值然後將字尾變更為dat ,那麼我們有沒有可能檢視這些圖的內容呢?

答案是是的。

根據圖片固定格式,我們很容易算出這個加密的值是多少,只需要將加密的檔案再次異或,並更名就可以跟以往的檔案圖片一樣了。

雖然異或不難,但是對於大部分非專業人來說還是不太明白,小編這裡推薦大家一個線上的工具,直接上傳就可以將微信dat解碼為圖片。

地址是 chrunlee.cn/tool/wechatdat ,將該地址複製到電腦瀏覽器就可以看到了。

目前這個工具已經累計解碼了2500萬的dat 檔案了,可以說非常給力了。

https://chrunlee.cn/article/weixin-dat-tool-seo1.html

相關文章