微信图片dat文件怎么打开(微信dat文件能删除吗)
如果大家常用微信办公,很可能会发现微信的文件夹占据着磁盘的大量空间,如果仔细查找的话,还会发现有非常非常之多的dat文件,观察仔细的同学会知道,这些dat文件都是图片,在聊天的时候产生的,但是呢..却无法使用正常的看图软件打开 。
今天我给大家主要讲解的是,通过nodejs来讲这些文件解码成为正常的图片,当然,如果想要看懂这篇文章的话,至少要了解nodejs的安装和简单使用 。
需要准备如下:
nodejs的环境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);
【微信图片dat文件怎么打开(微信dat文件能删除吗)】 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);
})
}
```
由于没有发现头条有markdown的语法,导致代码比较乱,不过思路是明确的,我们只需要根据思路来实现即可 。
文章插图
解码后的图片
当然,大部分的同学应该并没有编程基础,所以做了一个比较简单的转码软件,只需要选择对应的文件夹就可以直接进行解码了 。
文章插图
解码软件,百度搜索 BUG集散地 ,进入demo下的微信dat 有免费在线解码工具
- 郭美美微信(郭美美什么样)
- 从校服到婚纱图片(从校服到婚纱誓词)
- 广西微信聊天语音包(广西税务微信公众号)
- 微信双人对战小游戏(奇瑞qq最新款粉色)
- 陌陌好友能见面吗(微信怎么@所有人)
- 32岁的女人是什么状态(32岁的男生)
- 爱情文字图片 恋爱的(恋爱图片浪漫爱情带字)
- 爱情的照片带字(关于爱情句子的图片)
- 幸福三重奏2手机在线观看(幸福三重奏第11期)
- 二次元九尾狐妖图片古风(古装九尾狐妖图片漫画版)