微信已經成為非常重要的社交工具了,但是隨着使用的年限增加,微信會產生大量的文件佔據手機磁盤空間,而且很多文件都是dat格式,不能正常打開。

這些文件其實都是聊天時候的圖片,那麼如何可以正常地看到圖片並打開呢?
首先,了解我的微信dat文件到底在哪裡?
一般來說,PC端的微信在安裝的時候都是默認安裝的,自定義安裝的話就只能自己想想自己安裝到哪裡去了。
【C:UsersAdministratorDocumentsWeChat Files】
這個是默認安裝的路徑,找到後進去,裏面就能看到以自己的微信號命名的文件夾。
然後點進去後就是微信pc端的所有數據。

其次,再看看如何實現轉換?
1.dat文件路徑 (確保已有路徑,或自己修改)
into_path = r'C:image' # 微信image.dat文件路徑
2.輸出圖片路徑
out_path = r"C:imagejpg\"
3.輸入代碼
# weixin_Image.dat 破解
# JPG 16進制 FF D8 FF
# PNG 16進制 89 50 4e 47
# GIF 16進制 47 49 46 38
# 微信.bat 16進制 a1 86----->jpg ab 8c----jpg dd 04 --->png
# 自動計算異或 值
import os
into_path = r'C:image' # 微信image.dat文件路徑
#我這把路徑寫死了,運行可執行文件前 先創建這個路徑把dat文件放在這
out_path = r"C:imagejpg\"
"""
解碼
param f: 微信圖片路徑
param fn:微信圖片目錄下的.dat
return:
"""
def imageDecode(f, fn):
dat_read = open(f, "rb") # 讀取.dat 文件
xo = Format(f) # 判斷圖片格式 並計算返回異或值
out = out_path + fn + ".jpg" # 圖片輸出路徑
print("文件輸出路徑{}".format(out), end='nn')
png_write = open(out, "wb") # 圖片寫入
dat_read.seek(0) # 重置文件指針位置
for now in dat_read: # 循環位元組
for nowByte in now:
newByte = nowByte ^ xo # 轉碼計算
png_write.write(bytes([newByte])) # 轉碼後重新寫入
dat_read.close()
png_write.close()
def findFile(f):
"""
尋找文件
param f:微信圖片路徑
return:
"""
fsinfo = os.listdir(f) # 把路徑文件夾下的文件以列表呈現
print(fsinfo)
for fn in fsinfo: # 逐步讀取文件
temp_path = os.path.join(f, fn) # 拼接路徑:微信圖片路徑+圖片名
if os.path.isfile(temp_path): # 判斷目錄還是.dat #temp_path需為絕對路徑,判斷是否為文件,也可 if not os.path.isdir(temp_path):
print('找到文件路徑{}'.format(temp_path))
fn = fn[:-4] # 截取字符串 去掉後綴.dat
imageDecode(temp_path, fn) # 轉碼函數
else:
pass
def Format(f):
"""
計算異或值
各圖片頭部信息
jpeg:ff d8 ff
png:89 50 4e 47
gif: 47 49 46 38
"""
dat_r = open(f, "rb")
try:
a = [(0x89, 0x50, 0x4e), (0x47, 0x49, 0x46), (0xff, 0xd8, 0xff)]
for now in dat_r:
for xor in a:
i = 0
res = []
nowg = now[:3] #取前三個 數據信息
for nowByte in nowg:
res.append(nowByte ^ xor[i]) #進行判斷
i += 1
if res[0] == res[1] == res[2]: #三次異或值想等 說明就是那種格式
return res[0] #返回異或值
except:
pass
finally:
dat_r.close()
# 運行
if __name__ == '__main__':
findFile(into_path)
也可以直接使用打包好的exe軟件
注意
dat文件路徑:C:image 沒有先創建好 將要轉換的微信dat文件 放到此處
圖片輸出路徑:C:imagejpg
轉碼後只要不刪除dat,不選擇刪除源文件,是不會有影響的。軟件會讀取文件,並轉碼後重新生成文件,並與源文件同名。
我們可以根據文件名進行排序或根據類型進行排序,然後對文件進行處理。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/228116.html