admin管理员组

文章数量:1567278

2024年7月21日发(作者:)

如何打开微信里的dat文件?

微信的dat 实际上是微信软件将聊天的图片加密后产生的文件。

正常的图片软件无法开,加密方式为异或加密,但是加密值每个

人都不同,需要计算。

可以通过在线解码直接查看dat文件。

原理:微信dat文件在微信进行图片存储的时候做了异或加密,然后

将后缀修改为了dat格式。由于文件大小没有变化,可以很容易得到

异或值,然后我们通过异或值,将文件进行字节码解码,就可以将文

件还原成为图片了。

至此,微信dat文件还原成为图片也就结束了。

也可以百度搜索“BUG集散地”点击里面的“DEMO",可以轻松

解决这个问题,当然,

有编码能力可以直接看这里,代码:

//修改图片

//修改图片

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 = rSync(scanDir);

var arr = [];

h(function(item){

if(e(item) == '.dat'){

(item);

}

})

it(arr,50,function(item,c

b){

convert(item,cb);

},function(){

(0);

})

//convert

function convert(item,cb){

let absPath =(scanDir,item);

let imgPath = (imgDir,item+'

.jpg');

le(absPath,(err,content)=>{

if(err){

(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 = (br=>{

return br ^ v

})

ileSync(imgPath,bb)

cb(null);

})

}

如果不懂代码,也没关系,还提供了一个在线直接免费解码的服

务,可以直接上传dat进行在线解码。

本文标签: 文件图片微信加密解码