Python解析微信dat文件的方法
今天想查看某個(gè)微信聊天記錄的圖片內(nèi)容,查看文件記錄全部是dat文件,因此,開(kāi)始了一頓百度+操作!
先貼代碼:
import os def 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:\Users\zhang\Desktop\dat_dir' # 修改轉(zhuǎn)換成png圖片后的存放路徑 target_path = r'C:\Users\zhang\Desktop\dat_dir\image' # 修改加密的異或值 xor_value = 0x5f findFile(dat_path)
接下來(lái)代碼在本地運(yùn)行時(shí),有注釋的地方需要自行進(jìn)行修改。
這里的對(duì) xor_value
的具體修改值說(shuō)明:
——————————————————————————
據(jù)說(shuō)微信圖片是用異或值加密?(or轉(zhuǎn)碼?)
——————————————————————————
緊跟步驟
首先,我知道在 ~\WeChat Files 下的文件夾里面 ~\Image 文件夾下dat文件一定是圖片,常用的圖片格式為 PNG 和 JPG!我分別用十六進(jìn)制方式打開(kāi)了一張PNG和JPG的圖片

圖1 PNG16進(jìn)制

圖2 JPG的16進(jìn)制jpg
強(qiáng)迫癥請(qǐng)忽略圖片不完全一致
發(fā)現(xiàn) PNG 和 JPG圖片格式的文件分別是 “89 50” **“FF D8”**來(lái)開(kāi)頭的。
隨意打開(kāi)一個(gè)dat文件,同樣是16進(jìn)制格式打開(kāi)
文件開(kāi)頭為 “a0 87”,于是電腦計(jì)算器程序員專用走一波~

PNG XOR
JPG XOR
這個(gè)圖片是針對(duì)于JPG來(lái)進(jìn)行的一個(gè)XOR加密,并且加密用的16進(jìn)制 5F。因此 xor_value
*值填寫(xiě)0x5f。
到此這篇關(guān)于Python解析微信dat文件的文章就介紹到這了,更多相關(guān)Python微信dat文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pytorch從0實(shí)現(xiàn)Transformer的實(shí)踐
本文主要介紹了Pytorch從0實(shí)現(xiàn)Transformer的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05PyMongo進(jìn)行MongoDB查詢和插入操作的高效使用示例
這篇文章主要為大家介紹了PyMongo進(jìn)行MongoDB查詢和插入操作的高效使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法
這篇文章主要介紹了python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python持續(xù)監(jiān)聽(tīng)文件變化代碼實(shí)例
這篇文章主要介紹了Python持續(xù)監(jiān)聽(tīng)文件變化代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07解決django.db.utils.IntegrityError:(1048, Column las
這篇文章主要介紹了解決django.db.utils.IntegrityError:(1048, Column last_login cannot be null)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01如何通過(guò)pycharm實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的查詢等操作(非多步操作)
這篇文章主要介紹了如何通過(guò)pycharm實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的查詢等操作(非多步操作),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Numpy對(duì)數(shù)組的操作:創(chuàng)建、變形(升降維等)、計(jì)算、取值、復(fù)制、分割、合并
這篇文章主要介紹了Numpy對(duì)數(shù)組的操作:創(chuàng)建、變形(升降維等)、計(jì)算、取值、復(fù)制、分割、合并,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Python tkinter進(jìn)度條控件(Progressbar)的使用
這篇文章主要介紹了Python tkinter進(jìn)度條控件(Progressbar)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04