PC端微信數(shù)據(jù)下的DAT/dat文件轉(zhuǎn)成圖片
在線解碼,不用安裝,免費(fèi)解密
微信下的dat文件是什么?
之前在知乎上有看到,基本上都是一致的,這里提供一個(gè)nodejs版本的針對(duì)微信內(nèi)dat文件進(jìn)行處理恢復(fù)為圖片的方法。
可以指定某文件夾,然后將圖片恢復(fù)到另外一個(gè)文件夾。
微信的dat文件存在于 wechat files/xxx/filestorage/image/2019-06/ 類似的文件夾內(nèi)。
//修改圖片
//修改圖片
let fs = require('fs');
let path = require('path');
let async = require('async');
//值是多少自己算。
let base = 0xFF;
let next = 0xD8;
let gifA = 0x47;
let gifB = 0x49;
let pngA = 0x89;
let pngB = 0x50;
let scanDir = 'd:/ttt/load/';
let imgDir = 'd:/ttt/load1/';
let files = fs.readdirSync(scanDir);
var arr = [];
files.forEach(function(item){
if(path.extname(item) == '.dat'){
arr.push(item);
}
})
async.mapLimit(arr,50,function(item,cb){
convert(item,cb);
},function(){
process.exit(0);
})
//convert
function convert(item,cb){
let absPath =path.join(scanDir,item);
let imgPath = path.join(imgDir,item+'.jpg');
fs.readFile(absPath,(err,content)=>{
if(err){
console.log(err);
cb(err);
}
let firstV = content[0],
nextV = content[1],
jT = firstV ^ base,
jB = nextV ^ next,
gT = firstV ^ gifA,
gB = nextV ^ gifB,
pT = firstV ^ pngA,
pB = nextV ^ pngB;
var v = firstV ^ base;
if(jT == jB){
v = jT;
}else if(gT == gB){
v = gT;
}else if(pT == pB){
v = pT;
}
let bb = content.map(br=>{
return br ^ v
})
fs.writeFileSync(imgPath,bb)
cb(null);
})
}
以上是原理,我們可以通過代碼直接進(jìn)行批量解碼,當(dāng)然,如果你不懂代碼,沒有關(guān)系。
不懂代碼怎么辦
百度搜索 “BUG集散地” ,找到后第一個(gè)點(diǎn)擊進(jìn)入工具下的在線解碼,即可查看。
給大家介紹一個(gè)PC端的軟件,微信dat解碼軟件,可以查看電腦端微信聊天的圖片。
一般默認(rèn)的存儲(chǔ)路徑為: C:\Users\weixindata\WeChat Files\微信號(hào)\FileStorage\Image
。
該路徑下會(huì)有大量的dat格式的文件,這些文件其實(shí)都是聊天過程中產(chǎn)生的圖片數(shù)據(jù),微信客戶端對(duì)圖片做了一個(gè)簡(jiǎn)單的加密,導(dǎo)致無法直接查看。
加密是通過異或進(jìn)行加密的,只需要根據(jù)文件頭計(jì)算出異或值,即可進(jìn)行解密。
PC微信dat解碼軟件
軟件無須安裝,解壓即可使用,綠色版本。
雙擊 "wechatdat.exe" ,打開軟件。
選擇底部按鈕“ 選擇文件夾”, 然后選中filestorage/image/2020-09/ 文件夾。
之后會(huì)提示您共掃描到的dat文件數(shù)量。
然后點(diǎn)擊底部按鈕“開始解碼” 。
結(jié)束后點(diǎn)擊打開文件夾,就會(huì)發(fā)現(xiàn),已經(jīng)有同名圖片產(chǎn)生了。
小伙伴們,還等什么呢,跟隨幾個(gè)代碼鏈接。
參考: https://chrunlee.cn/article/nodejs-wechat-dat-img.html