Python解析微信dat文件的方法
今天想查看某個微信聊天記錄的圖片內容,查看文件記錄全部是dat文件,因此,開始了一頓百度+操作!
先貼代碼:
import osdef imageDecode(dat_dir,dat_file_name): dat_read = open(dat_dir, 'rb') if not os.path.exists(target_path): os.makedirs(target_path) out=target_path+''+dat_file_name+'.png' png_write = open(out, 'wb') for now in dat_read: for nowByte in now: newByte = nowByte ^ xor_value png_write.write(bytes([newByte])) dat_read.close() png_write.close()def findFile(dat_path): fsinfo = os.listdir(dat_path) for dat_file_name in fsinfo: temp_path = os.path.join(dat_path, dat_file_name) if not os.path.isdir(temp_path): print(’文件路徑: {}’ .format(temp_path)) imageDecode(temp_path,dat_file_name) else: pass if __name__==’__main__’:# 修改dat文件的存放路徑 dat_path = r’C:UserszhangDesktopdat_dir’ # 修改轉換成png圖片后的存放路徑 target_path = r’C:UserszhangDesktopdat_dirimage’ # 修改加密的異或值 xor_value = 0x5f findFile(dat_path)
接下來代碼在本地運行時,有注釋的地方需要自行進行修改。
這里的對 xor_value的具體修改值說明:——————————————————————————據說微信圖片是用異或值加密?(or轉碼?)——————————————————————————緊跟步驟
首先,我知道在 ~WeChat Files 下的文件夾里面 ~Image 文件夾下dat文件一定是圖片,常用的圖片格式為 PNG 和 JPG!我分別用十六進制方式打開了一張PNG和JPG的圖片

圖1 PNG16進制

圖2 JPG的16進制jpg
強迫癥請忽略圖片不完全一致
發現 PNG 和 JPG圖片格式的文件分別是 “89 50” **“FF D8”**來開頭的。
隨意打開一個dat文件,同樣是16進制格式打開
文件開頭為 “a0 87”,于是電腦計算器程序員專用走一波~

PNG XOR
JPG XOR
這個圖片是針對于JPG來進行的一個XOR加密,并且加密用的16進制 5F。因此 xor_value*值填寫0x5f。
到此這篇關于Python解析微信dat文件的文章就介紹到這了,更多相關Python微信dat文件內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
