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展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 Python
python数据分析数据标准化及离散化详解
Feb 26 Python
Python实现ping指定IP的示例
Jun 04 Python
对python的输出和输出格式详解
Dec 08 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
python按行读取文件并找出其中指定字符串
Aug 08 Python
Python类和实例的属性机制原理详解
Mar 21 Python
pycharm全局搜索的具体步骤
Jul 28 Python
python 贪心算法的实现
Sep 18 Python
用python对excel进行操作(读,写,修改)
Dec 25 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取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
小型js框架veryide.librar源代码
2009/03/05 Javascript
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
JQuery 操作select标签实现代码
2010/05/14 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
jquery实现拖拽小方块效果
2020/12/10 jQuery
Python生成随机MAC地址
2015/03/10 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
Python多层装饰器用法实例分析
2018/02/09 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
pandas中的series数据类型详解
2019/07/06 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
企划主管岗位职责
2013/12/12 职场文书
生产部经理岗位职责
2013/12/16 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python