微信Dat文件解码

最近在整理磁盘文件,因为经过一段时间的蹂躏后,磁盘实在是太多东西了,不整理一下,简直对不住我的SSD好嘛。偶然发现磁盘中某公司的文件夹占用空间简直不能再大,

那可是我的C盘啊,合计才119GB的SSD空间,你给我占了差不多10个G,说的就是你Tencent。

enter description here

 

  

但是也不能怪人家,毕竟人家只是负责将数据保存下来方便给我们展示而已。所以,就冒着好奇的心,看看文件夹里面有什么。
因为这次的主题说的是Dat文件的解密,我就不扯那么远。 
大家假装知道我点完文件夹,看到很多历史图片缓存图片众多*.db就好了哈。
(PS:不得不提的是腾讯将近给我缓存了6个G的表情包,未来可以收集这个内容做一个随机表情包网页出来乐呵乐呵呀。咳咳这些都是后话啦)
然后我们便来到了微信PC版的文件夹,找到自己的账号所在文件夹。比如我的是CBR-1997。找到后,如下所示

 

enter description here

 

这个时候,我便猜测,这些dat文件都是什么内容呢?聊天内容?不可能呀,聊天内容这么机密,肯定是放到db里面加密处理的。

聊天文件?也不至于有1700+个文件吧。

所以,综上,猜测这些个dat文件都是一些聊天时接收到的“表情包”或者“图片”。嗯,平时那些群聊斗图这么凶,估计没错了的。
enter description here


接下来,尝试直接改后缀试试。不出意外的得到了“图片错误”,我就知道不会这么简单。。。


enter description here

 

那接下来怎么办嘛。思来想去,便想着拿16进制编辑器看一下下,里面数据长啥样。
打开了多个文件看到里面文件头是8A AD ,但是一般jpg文件的文件头为FF D8 开头的。
又记得之前看过说文通过异或对文件进行简单的加解密的很常规的做法。
所以,打开计算器。一顿操作猛如虎,哈哈哈,结果一看没错辽,

 

enter description here

 

将计算器调整到程序员模式,然后使用FFD8与8AAD进行异或处理。
结果为7575,显然可以知道,这个dat就是微信将收取到的文件对吗,每个字节进行异或0x75进行加密,保存为dat文件。
这个时候,只要用Python写个脚本,不就可以轻松解码了嘛。

来来来,代码写起来。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

# -*- coding: utf-8 -*-

# @Time    : 3/27/2019 21:54

# @Author  : MARX·CBR

# @File    : 微信Dat文件转图片.py

 

import os

 

import os

 

out_path=r"D:\\"

 

def imageDecode(f,fn):

    dat_read = open(f, "rb")

    # out='P:\\'+fn+".png"

    out=out_path+fn+".png"

    png_write = open(out, "wb")

    for now in dat_read:

        for nowByte in now:

            newByte = nowByte ^ 0x33

            png_write.write(bytes([newByte]))

    dat_read.close()

    png_write.close()

 

def findFile(f):

    fsinfo = os.listdir(f)

    for fn in fsinfo:

        temp_path = os.path.join(f, fn)

        if not os.path.isdir(temp_path):

            print('文件路径: {}' .format(temp_path))

            print(fn)

            imageDecode(temp_path,fn)

        else:

            ...

 

# path = r'C:\Users\输入自己微信存储路径\Data'

# findFile(path)

 

# path = r'E:\\'

findFile(path)

  

 

跑出来的结果如下图,没错吧,以往的表情包,发过收过的图片都出现在了里面。
至此微信dat文件的复原解码到此就完成了。
补充一下,每个账号或者客户端对那个异或值都是不一样的,所以,小伙伴们如果需要还原dat文件的话,还是要自己用计算器异或处理一波哦。看看这个值是多少哈。

 

enter description here

 

 

微信dat是用什么软件打开?微信dat是什么?如何查看呢?

别的不多说,先上工具地址,下边的慢慢看。

点击 微信dat在线解码 进入微信dat解码工具页面,开始使用。


接下来就是老生常谈了。

微信的dat文件是微信用于缓存PC端微信的图片,然后对图片进行了加密的处理。所以是可以删除的,有些朋友data文件夹下有十几G的,都是可以删除的,但是最好确保这些文件都已经没有用处了再进行删除。

如果大家常用微信办公,很可能会发现微信的文件夹占据着磁盘的大量空间,如果仔细查找的话,还会发现有非常非常之多的dat文件,观察仔细的同学会知道,这些dat文件都是图片,在聊天的时候产生的,但是呢..却无法使用正常的看图软件打开。

大家可能不知道,我们常用的图片,比如jpeg png等文件都是有固定的数据格式的,微信将图片进行了异或加密,每个字节都异或一个值然后将后缀变更为dat ,那么我们有没有可能查看这些图的内容呢?

答案是是的。

根据图片固定格式,我们很容易算出这个加密的值是多少,只需要将加密的文件再次异或,并更名就可以跟以往的文件图片一样了。

虽然异或不难,但是对于大部分非专业人来说还是不太明白,小编这里推荐大家一个在线的工具,直接上传就可以将微信dat解码为图片。

地址是 chrunlee.cn/tool/wechatdat ,将该地址复制到电脑浏览器就可以看到了。

目前这个工具已经累计解码了2500万的dat 文件了,可以说非常给力了。

https://chrunlee.cn/article/weixin-dat-tool-seo1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值