最近在整理磁盘文件,因为经过一段时间的蹂躏后,磁盘实在是太多东西了,不整理一下,简直对不住我的SSD好嘛。偶然发现磁盘中某公司的文件夹占用空间简直不能再大,那可是我的C盘啊,合计才119GB的SSD空间,你给我占了差不多10个G,说的就是你Tencent。

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

这个时候,我便猜测,这些dat文件都是什么内容呢?聊天内容?不可能呀,聊天内容这么机密,肯定是放到db里面加密处理的。聊天文件?也不至于有1700+个文件吧。所以,综上,猜测这些个dat文件都是一些聊天时接收到的“表情包”或者“图片”。嗯,平时那些群聊斗图这么凶,估计没错了的。

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

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

将计算器调整到程序员模式,然后使用FFD8与8AAD进行异或处理。结果为7575,显然可以知道,这个dat就是微信将收取到的文件对吗,每个字节进行异或0x75进行加密,保存为dat文件。
这个时候,只要用Python写个脚本,不就可以轻松解码了嘛。 来来来,代码写起来。
# -*- 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文件的话,还是要自己用计算器异或处理一波哦。看看这个值是多少哈。

本文对你有没帮助呀,喜欢的话,记得留言、点赞、转发、收藏哟。谢谢各位!


欢迎扫码关注我的微信公众号:叙之亭

微信Dat文件解码的更多相关文章

  1. 微信DAT文件转JPG图片(图片恢复)

    微信电脑版现在已经是日常工作生活必不可少的工具,有时候删除了聊天记录或者被系统清理软件清理了,但还想查看曾经的微信聊天图片. 这个时候辛辛苦苦找到了文件,却发现无法查看,因为微信电脑版为了保护我们的隐 ...

  2. 微信DAT文件解密(dat转图像)

    微信电脑版现在已经是日常工作生活必不可少的工具,有时候删除了聊天记录或者被系统清理软件清理了,但还想查看曾经的微信聊天图片. 这个时候辛辛苦苦找到了文件,却发现无法查看,因为微信电脑版为了保护我们的隐 ...

  3. 微信电脑版DAT文件转图片工具

    一键批量将微信聊天接受到的加密存储DAT图片文件转化为普通图片. 通过查看转化后的图片,您可以: (1)清理无用的历史图片,节省电脑硬盘存储空间. (2)恢复寻找重要照片资料. 下载地址:点此下载 微 ...

  4. 将.dat文件导入数据库

    *最近在搞文本分类,就是把一批文章分成[军事].[娱乐].[政治]等等. 但是这个先需要一些样本进行训练,感觉文本分类和"按图索骥"差不多,训练的文章样本就是"图&quo ...

  5. 用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表

    用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表 下面的内容的实验环境我是在SQLSERVER2005上面做的 之前在园子里看到两篇文章<C# 读取纯真 ...

  6. dat文件中如何编写DOS的多行命令

    dat文件中如何编写DOS的多行命令 2012-10-15 11:29 四海柔情108 分享到:   2012-10-16 23:36 提问者采纳   你问的应该是BAT文件吧?BAT是DOS命令的批 ...

  7. FPGA笔记-读取.dat文件

    读取.dat图像文件 .dat文件是matlab生成的图像文件 initial begin // Initialize Inputs CLK = 0; RST = 1; IMAGE_DATA = 0; ...

  8. DAT文件怎样打开

    DAT文件类型主要是"数据"文件.能够是不论什么内容,比方:文字,图形,视频或一般的二进制数据,它并没有统一详细的结构.所以您不能理解它也相应一个用来打开它的应用程序.比方你看到一 ...

  9. FPGA笔记-阅读.dat文件

    阅读.dat图像文件 .dat文件是matlab生成的图像文件 initial begin // Initialize Inputs CLK = 0; RST = 1; IMAGE_DATA = 0; ...

随机推荐

  1. Debian 7开启ssh、telnet

    SSH 1. 安装ssh服务 apt-get install openssh-server 2. 开启ssh /etc/init.d/ssh  start Telnet 1. 安装telnet apt ...

  2. 第二章 深入分析Java I/O的工作机制(待续)

    Java的I/O类库的基本架构 磁盘I/O工作机制 网络I/O工作机制 NIO的工作方式 I/O调优 设计模式解析之适配器模式 设计模式解析之装饰器模式 适配器模式与装饰器模式的区别

  3. Linux 命令及获取帮助 目录文件浏览,管理和维护

    开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 $ 使用命令退出虚拟终端2上登录的用户 exit ...

  4. Enable SVM while booted from alternate media (ZT)

    http://www.seedsofgenius.net/uncategorized/solaris-tips-enable-svm-while-booted-from-alternate-media ...

  5. java线程面试题及答案

    1)2017Java面试题及答案:什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务 ...

  6. 使用Ping命令解析主机名解析出来的是IPv6

    如果你经常使用ping命令,并身处局域网,那么你肯定会有这样一个疑问:Ping计算机名为何是IPv6地址? 问这个问题的人很少见,大多都是对网络知识稍有了解的人,所以才会闻到关于ping的问题,而且在 ...

  7. LaTeX数学公式基础

    LaTeX数学公式 参考:https://www.cnblogs.com/Sinte-Beuve/p/6160905.html 原博客显示有点问题,重新搬运整理LaTeX数学公式部分的基本用法 基础 ...

  8. java多线程编程——同步器Exchanger

    类java.util.concurrent.Exchanger提供了一个同步点,在这个同步点,一对线程可以交换数据.每个线程通过exchange()方法的入口提供数据给他的伙伴线程,并接收他的伙伴线程 ...

  9. 支撑矢量机SVM

    1.线性SVM 首先,回顾一下SVM问题的定义,如下: 线性约束很烦,不方便优化,是否有一种方法可以将线性约束放到优化问题本身,这样就可以无拘无束的优化,而不用考虑线性约束了.其对应的拉格朗日对偶形式 ...

  10. Python_pip_03_安装模块出现错误时咋整

    >在DOS窗口中到Python安装路径的scripts中执行  pip install pyperclip 出现错误 >>错误提示:Fatal error in launcher: ...