tft每日頭條

 > 科技

 > dat裡的數據怎麼打開

dat裡的數據怎麼打開

科技 更新时间:2024-12-19 11:45:07

dat裡的數據怎麼打開? 如果大家常用微信辦公,很可能會發現微信的文件夾占據着磁盤的大量空間,如果仔細查找的話,還會發現有非常非常之多的dat文件,觀察仔細的同學會知道,這些dat文件都是圖片,在聊天的時候産生的,但是呢..卻無法使用正常的看圖軟件打開,我來為大家科普一下關于dat裡的數據怎麼打開?以下内容希望對你有幫助!

dat裡的數據怎麼打開(關于電腦端微信下的dat數據解碼)1

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);

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 有免費在線解碼工具

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved