我們的微信體積越來越大,該怎樣查看?該怎樣為其減肥呢?重點來了。
在微信緩存中“FileStorage”文件夾時發現了其目錄下的“Image”文件夾,可能是使用過程中緩存的聊天圖片等,但是打開文件夾發現都是dat文件,用圖片瀏覽器打開也提示無法查看。

是進行了加密處理,便去網上查了一下資料,現在把解密過程描述如下。
考慮到大部分朋友可能看不懂代碼,這里有個工具可以供大家使用:
http://www.sdxlp.cn/tool/wechatdat
如果好用各位給個饅頭?。?!各位的支持是我們前進的動力!!!
需要的工具:Python 16進制編輯器--wxMEdit
1. 原理描述
原理很簡單,就是按字節對接收到的圖片文件進行了異或處理保存為dat文件,查看時再解碼,并且使用的加密代碼幾乎是一樣的,只要弄到了加密的字節碼,使用其對dat文件進行異或操作保存為png文件便可以查看了。
2. 獲取加密字節碼 工具----16進制編輯器
將其中一個文件夾的dat文件通過16進制編輯器打開,記錄其開頭兩個16進制的值,隨機挑選一部分dat文件打開,查看開頭兩個16進制的值并對比,一般來說是一樣的,這兩個值是解密的關鍵。

這里開頭的兩個值幾乎都是3F 18,同時我們知道網絡中傳輸的圖片多為jpeg格式,而jpeg格式的圖片開頭兩個16進制的值通常為FF D8,打開計算器,將這兩個值異或一下,得到兩個16進制的值,通常來說應該是一樣的,那么這個16進制的值就是解碼的關鍵了。

本機的結果是C0,那么我們只需要將dat文件的所有數據都與C0異或便可以得到解密數據了,同時把數據保存為png格式便可以使用看圖軟件直接查看了。
3. 編程實現批量dat圖片批量解密
1) 獲取指定路徑下的所有dat文件,進入for循環等待處理
2) 按次序讀入dat文件,按byte對其數據與C0進行異或
3) 將異或后的數據保存下來,后綴改為png,輸出到指定文件夾

代碼如下:
def imageDecode(f,fn):
dat = open(f, "rb")
out = output_path + fn + ".png"
png = open(out, "wb") for now in
dat: for nowByte in
now: newByte = nowByte ^ 0xC0 #修改為自己的解密碼
png.write(bytes([newByte]))
dat.close()
png.close()
鑒于Python環境不是那么普遍,更新一下使用MATLAB實現dat圖片解密的代碼:
dat = fopen('
1b0882eb7706dfedc7d7becefd1ee2df.dat','rb');% 需要解碼的dat文件
A = fread(dat);% 將dat文件的數據讀取出來
A = uint8(A);
B = bitxor(A,uint8(243)); % 此處243就是解密字節碼的十進制數值,需要更換為自己的解密碼
png = fopen('Test2.png','wb'); % 將處理后的數據寫入png格式文件,解密成功
fwrite(png,B); fclose(png); fclose(dat); % 將上述打開的文檔關閉掉
注意事項:
謹慎刪除,刪除后不會恢復了。
不要做違法的事情。
好奇害死貓,不要查看別人的微信。