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中zip和unzip数据的方法
May 27 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
Anaconda入门使用总结
Apr 05 Python
基于Pandas读取csv文件Error的总结
Jun 15 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
python性能测量工具cProfile使用解析
Sep 26 Python
Python监控服务器实用工具psutil使用解析
Dec 19 Python
Python pip install如何修改默认下载路径
Apr 29 Python
python输出结果刷新及进度条的实现操作
Jul 13 Python
Python游戏开发实例之graphics实现AI五子棋
Nov 01 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
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
基于empty函数的判断详解
2013/06/17 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
php实现微信发红包功能
2018/07/13 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
JS实现吸顶特效
2020/01/08 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
Python 文件操作实现代码
2009/10/07 Python
python服务器端收发请求的实现代码
2014/09/29 Python
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
python函数的万能参数传参详解
2019/07/26 Python
如何运行带参数的python脚本
2019/11/15 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
新闻发布会活动策划方案
2014/09/15 职场文书
对公司的意见和建议
2015/06/04 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
新手入门Mysql--sql执行过程
2021/06/20 MySQL
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
Python OpenCV形态学运算示例详解
2022/04/07 Python