Python解析微信dat文件的方法


Posted in Python onNovember 30, 2020

今天想查看某个微信聊天记录的图片内容,查看文件记录全部是dat文件,因此,开始了一顿百度+操作!

先贴代码:

import os

def imageDecode(dat_dir,dat_file_name):
  dat_read = open(dat_dir, "rb")
  if not os.path.exists(target_path):
    os.makedirs(target_path)
  out=target_path+"\\"+dat_file_name+".png"
  png_write = open(out, "wb")
  for now in dat_read:
    for nowByte in now:
      newByte = nowByte ^ xor_value
      png_write.write(bytes([newByte]))
  dat_read.close()
  png_write.close()

def findFile(dat_path):
  fsinfo = os.listdir(dat_path)
  for dat_file_name in fsinfo:
    temp_path = os.path.join(dat_path, dat_file_name)
    if not os.path.isdir(temp_path):
      print('文件路径: {}' .format(temp_path))
      imageDecode(temp_path,dat_file_name)
    else:
      pass
            
if __name__=='__main__':

	# 修改dat文件的存放路径
  dat_path = r'C:\Users\zhang\Desktop\dat_dir'
  
  # 修改转换成png图片后的存放路径
  target_path = r'C:\Users\zhang\Desktop\dat_dir\image'
  
  # 修改加密的异或值
  xor_value = 0x5f
  
  findFile(dat_path)

接下来代码在本地运行时,有注释的地方需要自行进行修改。


这里的对 xor_value的具体修改值说明:
——————————————————————————
据说微信图片是用异或值加密?(or转码?)
——————————————————————————
紧跟步骤

首先,我知道在 ~\WeChat Files 下的文件夹里面 ~\Image 文件夹下dat文件一定是图片,常用的图片格式为 PNGJPG!我分别用十六进制方式打开了一张PNG和JPG的图片

Python解析微信dat文件的方法

图1 PNG16进制

Python解析微信dat文件的方法

图2 JPG的16进制jpg

强迫症请忽略图片不完全一致

发现 PNGJPG图片格式的文件分别是 “89 50” **“FF D8”**来开头的。

随意打开一个dat文件,同样是16进制格式打开

Python解析微信dat文件的方法

文件开头为 “a0 87”,于是电脑计算器程序员专用走一波~

Python解析微信dat文件的方法

PNG XOR

Python解析微信dat文件的方法

JPG XOR

这个图片是针对于JPG来进行的一个XOR加密,并且加密用的16进制 5F。因此 xor_value*值填写0x5f

到此这篇关于Python解析微信dat文件的文章就介绍到这了,更多相关Python微信dat文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python切片用法实例教程
Sep 08 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
Mar 19 Python
点球小游戏python脚本
May 22 Python
Django如何使用第三方服务发送电子邮件
Aug 14 Python
django认证系统实现自定义权限管理的方法
Aug 28 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 Python
python 实现让字典的value 成为列表
Dec 16 Python
python序列化与数据持久化实例详解
Dec 20 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
python 密码学示例——凯撒密码的实现
Sep 21 Python
python 实现学生信息管理系统的示例
Nov 28 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 #Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 #Python
Python 微信公众号文章爬取的示例代码
Nov 30 #Python
python爬虫工具例举说明
Nov 30 #Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
Nov 29 #Python
运行python提示no module named sklearn的解决方法
Nov 29 #Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 #Python
You might like
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
php常量详细解析
2015/10/27 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
prototype 的说明 js类
2006/09/07 Javascript
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
javascript prototype 原型链
2009/03/12 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
python中对list去重的多种方法
2014/09/18 Python
python内存管理分析
2015/04/08 Python
Python中字符串的修改及传参详解
2016/11/30 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
jupyter notebook 多行输出实例
2020/04/09 Python
python raise的基本使用
2020/09/10 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
考试不及格的检讨书
2014/01/22 职场文书
优秀共产党员先进事迹
2014/01/27 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
转让协议书
2015/01/27 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书