提供一个在线的版本,可以直接批量上传微信dat文件,然后转化成图片,支持批量下载功能。代码可以保证绝不保留任何文件不相信的可以去看下源码是开源的网站。 微信dat在线解码,就在顶部demo里可以找到,点我也行。
微信的dat文件存在于 wechat files/xxx/filestorage/image/2019-06/ 类似的文件夹内。
需要安装的模块
async 异步处理
//修改图片 //修改图片 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);
})
} 通过nodejs 来将微信wechat的缓存的dat图片进行还原,也可以实现恢复微信中已经撤回的图片。
转载请注明出处: http://sdxlp.cn/article/weixin3.2.html