PC端微信的dat文件如何查看 | 您所在的位置:网站首页 › 电脑怎样打开dat文件 › PC端微信的dat文件如何查看 |
软件说明
PC微信会下载图片到本地存储,会为.dat后缀的文件进行加密,保护文件。 通过异或的方法对文件进行简单的加解密的方法很常规的做法。微信将收取到的文件,对每个字节进行异或加密,保存为dat文件。 其中异或的值为反推出来的,需要知道文件类型,才能确定文件的头文件特征,才能反推出异或值,所以这个工具是写死的文件类型为jpg的 ,头文件特征为 FFD8FFE1 异或值=FF^加密文件第一个字节。 异或值的计算方法:1、选择dat文件所在目录 2、输入异或值(自行百度异或值计算方法) 3、解密图片会出现在所选择目录 4、如果出现“图片异或值错误”,请重新计算异或值 使用方法打开 WeChatImageDatEncryption.exe ,输入图片的位置按回车即可。 如果你没有修改过位置,原来的位置就是在 %USERPROFILE%\Documents\WeChat Files\你的微信名\data 如果确实不知道在哪里,可以打开微信设置,查看通用设置>打开文件夹,在进入到 Data 目录即可。 示例图 解密出来的文件会放在 WeChatImageDatEncryption.exe 同级目录的 Data 文件夹里。 原理:先确定原本的文件类型,就能确定文件的头文件特征,然后查看dat文件的头文件特征,就能反推出异或值。 源码说明每个账号或者客户端对那个异或值可能是不一样的,所以不同版本的微信可能就会失效,但是你知道原理之后,就可以自己计算异或值啦~我把源码放出来,你们也可以参考。 代码 //修改图片 //修改图片 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); }) }如果不会代码,又有需要的话. 1.可以到百度搜一下“源代码设计笔记”-->"DEMO"-->"在线解码"——>"输入序列号"-->"下载"——>"安装"-->"完成”。 2.直接进入地址:sdxlp.cn/tool/wechatdat 按1的步骤来一遍就可以了。希望这篇文章可以帮助有需要的有缘人,写文不易,如果好用回来给个赞啊! |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |