PC端微信数据下的DAT/dat文件转成图片
在线解码,不用安装,免费解密
微信下的dat文件是什么?
之前在知乎上有看到,基本上都是一致的,这里提供一个nodejs版本的针对微信内dat文件进行处理恢复为图片的方法。
可以指定某文件夹,然后将图片恢复到另外一个文件夹。
微信的dat文件存在于 wechat files/xxx/filestorage/image/2019-06/ 类似的文件夹内。
//修改图片
//修改图片
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);
})
}
以上是原理,我们可以通过代码直接进行批量解码,当然,如果你不懂代码,没有关系。
不懂代码怎么办
百度搜索 “BUG集散地” ,找到后第一个点击进入工具下的在线解码,即可查看。
给大家介绍一个PC端的软件,微信dat解码软件,可以查看电脑端微信聊天的图片。
一般默认的存储路径为: C:\Users\weixindata\WeChat Files\微信号\FileStorage\Image
。
该路径下会有大量的dat格式的文件,这些文件其实都是聊天过程中产生的图片数据,微信客户端对图片做了一个简单的加密,导致无法直接查看。
加密是通过异或进行加密的,只需要根据文件头计算出异或值,即可进行解密。
PC微信dat解码软件
软件无须安装,解压即可使用,绿色版本。
双击 "wechatdat.exe" ,打开软件。
选择底部按钮“ 选择文件夹”, 然后选中filestorage/image/2020-09/ 文件夹。
之后会提示您共扫描到的dat文件数量。
然后点击底部按钮“开始解码” 。
结束后点击打开文件夹,就会发现,已经有同名图片产生了。
小伙伴们,还等什么呢,跟随几个代码链接。
参考: https://chrunlee.cn/article/nodejs-wechat-dat-img.html