前言
以微信 PC 端为例
某个小姐姐/小哥哥通过微信发给你的图片会在以下目录以 .dat
后缀的格式出现
C:Users aadisDocumentsWeChat Files aadisFileStorageImage2019-07
如果对方撤回后, 对应的文件会被微信删除 (理论上磁盘记录过, 磁盘恢复也可以找回)
一张图片对应一个 .dat
文件.
直接把 .dat 改为 .jpg 是看不了滴...
如何查看
现在试试怎么还原微信的 .dat
文件到可以查看的图片
打开多个微信 .dat
文件 (16进制HEX查看), 都是 0D2A
开头的
but .jpg
图片文件通常是 FFD8
开头的, 所以这里有个伪加密的操作在, 我们拿 FFD8 ^ 0D2A
做一次 异或/xor/^ 操作
可得 F2F2
(这里大家可能会有点不一样, 以你自己的电脑为准)
关键的数据拿到了, 那么后面通过程序读取 dat 文件字节数据然后做一次异或操作就可以得到图片的原始数据咯
靠图说话
先拿一个简单的做个测试先
然后拿多个继续测试
搞定, 剩下的就是完善工具咯, 方便使用咯.
源码
最后源码在这里
参考
- 微信Dat文件解码 - python 实现
- 批量解析微信dat文件 - java 实现
- [Android 原创] 微信数据库解密
- Go语言 通过文件流判断文件头来识别文件类型
- 微信加密图片破解
- go语言实现遍历目录,及查找特定的文件类型
- Golang遍历文件夹下的所有文件