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用来获得图片exif信息的库实例分析
Mar 16 Python
Python进程通信之匿名管道实例讲解
Apr 11 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
python实现汉诺塔递归算法经典案例
Mar 01 Python
Python算法应用实战之队列详解
Feb 04 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
Window10下python3.7 安装与卸载教程图解
Sep 30 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
Pythonic版二分查找实现过程原理解析
Aug 11 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 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 iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
Yii全局函数用法示例
2017/01/22 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
import的本质解析
2017/10/30 Python
Python工程师面试必备25条知识点
2018/01/17 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
python中entry用法讲解
2020/12/04 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
语文教育专业应届生求职信
2013/11/23 职场文书
新闻报道策划方案
2014/06/11 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
python中的getter与setter你了解吗
2022/03/24 Python
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS