当前位置: 首页 > news >正文

python实现微信聊天图片DAT文件还原

完整代码如下:

from glob import glob
import os
from tqdm import tqdmdef get_sign(dat_r):signatures = [(0x89, 0x50, 0x4e), (0x47, 0x49, 0x46), (0xff, 0xd8, 0xff)]mats = [".png", ".gif", ".jpg"]for now in dat_r:for j, xor in enumerate(signatures):res = [nowByte ^ xor_byte for nowByte,xor_byte in zip(now[:3], xor)]if res[0] == res[1] == res[2]:return res[0], mats[j]else:raise Exception("no valid signature is found")def imageDecode(file, root_path, dest_path=None):dat_r = open(file, "rb")try:sign, mat = get_sign(dat_r)dat_r.seek(0)data = bytes(byte ^ sign for byte in dat_r.read())relative_path = os.path.relpath(file, root_path)if dest_path is None:dest_path = os.path.join(root_path, "CovertImage")dest = os.path.join(dest_path,relative_path.replace(".dat", mat))os.makedirs(os.path.dirname(dest), exist_ok=True)with open(dest, "wb") as write:write.write(data)finally:dat_r.close()def main(into_path, out_path=None):for file in tqdm(glob(os.path.join(into_path, "**", "*.dat"), recursive=True)):imageDecode(file, into_path, out_path)if __name__ == '__main__':into_path = r"D:\tmp\wx_icon_dat"
#     out_path = r"D:\tmp\wx_icon_dat"main(into_path, out_path=None)

支持递归处理,不指定结果文件夹时,结果将写入into_path+"CovertImage"目录下。
还原示例:
在这里插入图片描述

http://www.lryc.cn/news/412066.html

相关文章:

  • 栈与队列——1.有效的括号
  • C语言家教记录(二)
  • Cocos Creator2D游戏开发(10)-飞机大战(8)-计分和结束
  • 经验分享:大数据多头借贷风险对自身的不利影响?
  • OpenCV 图像处理 轮廓检测基本原理
  • C 语言动态顺序表
  • 擅于辩论的人可以将黑的说成白的,但是存在无法解决的矛盾
  • java的命令执行漏洞揭秘
  • 爬虫中常见的加密算法Base64伪加密,MD5加密【DES/AES/RSA/SHA/HMAC】及其代码实现(一)
  • C语言数据在内存中的存储超详解
  • 【大模型】【NL2SQL】基本原理
  • RK3568平台(显示篇)DRM vop驱动程序分析
  • vue3 动态加载组件
  • Latex on overleaf入门语法
  • 使用Echarts来实现数据可视化
  • 一文搞懂GIT
  • jQuery入门(四)案例
  • 揭秘MITM攻击:原理、手法与防范措施
  • 【YOLOv8】一文全解+亮点介绍+训练教程+独家魔改优化技巧
  • 创建mvp ubo(uniform buffer object)
  • 1.GPIO
  • C++必修:STL之vector的了解与使用
  • 【MySQL】索引 【上】 {没有索引的查询/磁盘/mysql与磁盘IO/初识索引}
  • GO goroutine状态流转
  • DLMS/COSEM中的信息安全:DLMS/COSEM安全概念(上)
  • C语言第九天笔记
  • 智慧环卫可视化:科技赋能城市清洁管理
  • 【力扣】SQL题库练习5
  • 永结无间Ⅸ--你不需要LLM Agent
  • Simulink|基于粒子群算法的永磁同步电机多参数辨识