微信Dat文件解码
最近在整理磁盘文件,因为经过一段时间的蹂躏后,磁盘实在是太多东西了,不整理一下,简直对不住我的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文件解码的更多相关文章
- 微信DAT文件转JPG图片(图片恢复)
微信电脑版现在已经是日常工作生活必不可少的工具,有时候删除了聊天记录或者被系统清理软件清理了,但还想查看曾经的微信聊天图片. 这个时候辛辛苦苦找到了文件,却发现无法查看,因为微信电脑版为了保护我们的隐 ...
- 微信DAT文件解密(dat转图像)
微信电脑版现在已经是日常工作生活必不可少的工具,有时候删除了聊天记录或者被系统清理软件清理了,但还想查看曾经的微信聊天图片. 这个时候辛辛苦苦找到了文件,却发现无法查看,因为微信电脑版为了保护我们的隐 ...
- 微信电脑版DAT文件转图片工具
一键批量将微信聊天接受到的加密存储DAT图片文件转化为普通图片. 通过查看转化后的图片,您可以: (1)清理无用的历史图片,节省电脑硬盘存储空间. (2)恢复寻找重要照片资料. 下载地址:点此下载 微 ...
- 将.dat文件导入数据库
*最近在搞文本分类,就是把一批文章分成[军事].[娱乐].[政治]等等. 但是这个先需要一些样本进行训练,感觉文本分类和"按图索骥"差不多,训练的文章样本就是"图&quo ...
- 用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表
用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表 下面的内容的实验环境我是在SQLSERVER2005上面做的 之前在园子里看到两篇文章<C# 读取纯真 ...
- dat文件中如何编写DOS的多行命令
dat文件中如何编写DOS的多行命令 2012-10-15 11:29 四海柔情108 分享到: 2012-10-16 23:36 提问者采纳 你问的应该是BAT文件吧?BAT是DOS命令的批 ...
- FPGA笔记-读取.dat文件
读取.dat图像文件 .dat文件是matlab生成的图像文件 initial begin // Initialize Inputs CLK = 0; RST = 1; IMAGE_DATA = 0; ...
- DAT文件怎样打开
DAT文件类型主要是"数据"文件.能够是不论什么内容,比方:文字,图形,视频或一般的二进制数据,它并没有统一详细的结构.所以您不能理解它也相应一个用来打开它的应用程序.比方你看到一 ...
- FPGA笔记-阅读.dat文件
阅读.dat图像文件 .dat文件是matlab生成的图像文件 initial begin // Initialize Inputs CLK = 0; RST = 1; IMAGE_DATA = 0; ...
随机推荐
- DCloud:temple
ylbtech-DCloud: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 7.返回顶部 8.返回顶部 9.返回顶部 1 ...
- 转:面对一个全新的环境,作为一个Oracle DBA,首先应该了解什么
转载:面对一个全新的环境,作为一个Oracle DBA,首先应该了解什么 由于时间比较久了,找不到原文章的链接,先贴上内容供大家参考 在这里,不谈那些大的方面,比如了解整个IT环境整体情况,假设你已经 ...
- java中实现多线程的方法有几种以及如何实现多线程
多线程是java语言区别于其它语言的一大特点.其它语言向C++的话如果要实现多线程的话,必须调用操作系统的多线程机制(我不确定自己记得对不对 了感兴趣的自己上网查查看). 在java5以前实现多线程有 ...
- iphone配置实用工具iPhone Configuration Utility
下载地址 http://support.apple.com/kb/DL1466 安装完毕后,在设备->控制台,可以很方便看到报错信息
- 1107SQLserver基础--语句、存储过程
[随堂练习]--查询‘李数’老师教的数学成绩大于80分的学生的信息, 并且人数大于3的话,输出达标:否则输出不达标. 存储过程 --带参数的程序代码块---代表执行命令存储在数据库中,存储代码,没有调 ...
- LAMP 3.4 mysql常用操作-2
给用户授权 > grant all on discuz.* to 'user1'@'192.168.1.%' identified by 'wangshaojun'; 指定库,用户名user1 ...
- Go并发原理
Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言:也正是Go语言的并发特性,吸引了全球无数的开发者. 并发(concurrency)和并行(parallellism) 并发(c ...
- Win10_禁用自动更新(官方版)
1> win键>输入服务>打开>找到windowsUpdate-->启动类型为-禁用 -->> 恢复失三个选项改为-->>无操作 2>win ...
- IO流对文件的读取操作
/*1. 在当前项目的根目录下有一个名为“info.txt”的文件,里面存放的内容如下(可手动创建录入,不需要使用IO流): 2. 利用IO流的知识读取info.txt文件的内容, 在控制台上打印大写 ...
- CF570E Pig and Palindromes
完全不会这种类型的$dp$啊…… 考虑回文串一定是可以拆分成(偶数个字母 + 偶数个字母)或者(偶数个字母 + 一个字母 +偶数个字母),两边的偶数个字母其实是完全对称的.因为这道题回文串的长度是给定 ...