欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用python將微信image下.dat文件解密為.png的方法

 更新時(shí)間:2020年11月30日 08:51:08   作者:Zhanglw882  
這篇文章主要介紹了使用python將微信image下.dat文件解密為.png的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

用清理軟件清理電腦垃圾的時(shí)候,發(fā)現(xiàn)微信存了很多圖片,進(jìn)入路徑一看,全是以.dat為格式的文件:

微信圖片儲(chǔ)存的格式

嘗試了直接把后綴名的.dat 改 .jpg和.png,都打不開,感覺事情沒那么簡(jiǎn)單,隨后立刻度娘了一下,并找到了代碼。下面一步一步的來(lái)看一下。

微信客戶端保存的路徑一般是這樣的,相信你能找到。
F:\Users\Tencent Files\WeChat Files\wxid_\FileStorage\Image\2020-11

在這里插入圖片描述

就可以發(fā)現(xiàn)里面保存了一堆.dat格式的東西,微信保存的這個(gè)格式是16進(jìn)制存儲(chǔ)的,所以需要一個(gè)可以查看16進(jìn)制的軟件,如果你有就更好了,沒有的話推薦一個(gè):微軟出的文本編輯器,官方鏈接:https://www.ultraedit.com/

在這里插入圖片描述

用它就可以打開我們的.dat文件。打開后就可以看到是這個(gè)樣子的,注意圖中標(biāo)紅的位置,就是這個(gè)文件的開頭部分,你會(huì)發(fā)現(xiàn)你不管打開哪個(gè).dat文件,開頭的四個(gè)數(shù)都是一樣的(你的4個(gè)數(shù)可能和我的不一樣,很正常,就像微信號(hào)一樣,但是你的.dat文件都是以特定的4位數(shù)字開頭)。這四個(gè)數(shù)相當(dāng)于一把解鎖的鑰匙。

在這里插入圖片描述

我們用能打開16進(jìn)制的軟件打開.jpg時(shí),會(huì)發(fā)現(xiàn).jpg的格式都是以FFD8為開頭的,同樣.png的也是FFD8。

在這里插入圖片描述

用你的4位數(shù)鑰匙與FFD8做異或運(yùn)算,就能得到你的解鎖密碼:

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

異或運(yùn)算的結(jié)果是一個(gè)16進(jìn)制的4位數(shù),但是我們只需要最后兩位。所以最終你得到的是一個(gè)16進(jìn)制的兩位數(shù)。記住它,后面要用的。

準(zhǔn)備工作到這里就結(jié)束了,接下來(lái)就是代碼,用的python語(yǔ)言。
需要你改的地方有三個(gè)(代碼中有相應(yīng)的注釋):
兩個(gè)路徑:將.dat的路徑、你要保存解密后文件的路徑都改為你自己的;
一個(gè)值:用你自己的密碼(兩位數(shù))代替我的密碼。

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'F:\Users\Tencent Files\WeChat Files\wxid\FileStorage\Image\2020-04'
 
 # 修改轉(zhuǎn)換成png圖片后的存放路徑
 target_path = r'F:\Users\Tencent Files\WeChat Files\image'
 
 # 修改加密的異或值,比如說(shuō)我的異或值最后兩位是B2,則xor_value = 0xB2,0x表示16進(jìn)制
 xor_value = 0xB2
 
 findFile(dat_path)
 print("end")

運(yùn)行后,可以看到輸出都是一個(gè)有一個(gè)圖片,直觀明了,就可以保存自己想要的圖片,清理不需要的:

在這里插入圖片描述

最后,我對(duì)比了一下解密前后的空間占用情況,占用空間的完全相同,不知道為啥騰訊要以.dat文件存儲(chǔ)。

左圖為.dat,右圖為.png

參考:http://www.dbjr.com.cn/article/200924.htm

到此這篇關(guān)于使用python將微信image下.dat文件解密為.png的方法的文章就介紹到這了,更多相關(guān)python 微信image .dat文件解密為.png內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python使用心得之獲得github代碼庫(kù)列表

    python使用心得之獲得github代碼庫(kù)列表

    最近接了個(gè)項(xiàng)目,要求獲得github的repo的api,度娘了一下,有不少文章介紹,總結(jié)了本文,分享給大家并附上代碼
    2014-06-06
  • Pytorch中的backward()多個(gè)loss函數(shù)用法

    Pytorch中的backward()多個(gè)loss函數(shù)用法

    這篇文章主要介紹了Pytorch中的backward()多個(gè)loss函數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則

    關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則

    這篇文章主要介紹了關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則,眾所周知,相同?shape?的兩個(gè)數(shù)組間運(yùn)算是指兩個(gè)數(shù)組的對(duì)應(yīng)元素相加,我們經(jīng)常會(huì)碰到一些不同?shape?的數(shù)組間運(yùn)算,需要的朋友可以參考下
    2023-08-08
  • pyqt5 QListWidget的用法解析

    pyqt5 QListWidget的用法解析

    這篇文章主要介紹了pyqt5 QListWidget的用法解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Python實(shí)現(xiàn)字符串反轉(zhuǎn)的9種方法(最全)

    Python實(shí)現(xiàn)字符串反轉(zhuǎn)的9種方法(最全)

    本文主要介紹了Python實(shí)現(xiàn)字符串反轉(zhuǎn)的9種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • python爬蟲泛濫的解決方法詳解

    python爬蟲泛濫的解決方法詳解

    在本篇文章里小編給大家整理了關(guān)于python爬蟲泛濫的解決方法詳解內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-11-11
  • Python中l(wèi)ist列表添加元素的3種方法總結(jié)

    Python中l(wèi)ist列表添加元素的3種方法總結(jié)

    這篇文章主要介紹了Python中l(wèi)ist列表添加元素的3種方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • pycharm中連接mysql數(shù)據(jù)庫(kù)的步驟詳解

    pycharm中連接mysql數(shù)據(jù)庫(kù)的步驟詳解

    在進(jìn)行Python研發(fā)的時(shí)候,pycharm是一個(gè)很好的IDE,下面這篇文章主要給大家介紹了pycharm中連接mysql數(shù)據(jù)庫(kù)的步驟,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • python實(shí)現(xiàn)端口轉(zhuǎn)發(fā)器的方法

    python實(shí)現(xiàn)端口轉(zhuǎn)發(fā)器的方法

    這篇文章主要介紹了python實(shí)現(xiàn)端口轉(zhuǎn)發(fā)器的方法,涉及Python實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的技巧,支持TCP和UDP協(xié)議,需要的朋友可以參考下
    2015-03-03
  • Python和Sublime整合過(guò)程圖示

    Python和Sublime整合過(guò)程圖示

    這篇文章主要介紹了Python和Sublime整合過(guò)程圖示,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論