微信聊天记录的图片DAT文件还原

ziyuan 2024-08-06 阅读:283 评论:0
微信聊天记录里的图片忘记保存原图过期了怎么办?备份微信聊天记录,图片全是一些DAT文件,无法直接预览,怎么办?每次找个资料都可能会遇到这个问题,纠结来纠结去,终于找到了解决方案了。可以把需要恢复的图片(在电脑的聊天记录存储里,查找*.dat...

微信聊天记录里的图片忘记保存原图过期了怎么办?备份微信聊天记录,图片全是一些DAT文件,无法直接预览,怎么办?
每次找个资料都可能会遇到这个问题,纠结来纠结去,终于找到了解决方案了。
可以把需要恢复的图片(在电脑的聊天记录存储里,查找*.dat,找到聊天记录时间附近的文件拷贝出来)
image.png


然后通过执行python脚本,直接得到解析后的图片成果:

image.png

完美~~~~

附代码:


# -*- coding:utf-8 -*-
import os

into_path = r'D:/test1'  # 微信图片DAT文件存放路径
out_path = r"D:/test2"   # 转换后的图片存放路径

def main(into_path, out_path):
    dat_list = dat_files(into_path)
    lens = len(dat_list)
    if lens == 0:
        print('没有dat文件')
        exit()
    num = 0
    for dat_file in dat_list:
        num += 1
        temp_path = into_path + '/' + dat_file
        dat_file_name = dat_file[:-4]
        imageDecode(temp_path, dat_file_name, out_path)
        value = round((num / lens) * 100, 2)
        print('正在处理--->[{}/{}] {}%'.format(num, lens, value))

def dat_files(file_dir):
    dat = []
    for files in os.listdir(file_dir):
        if os.path.splitext(files)[1] == '.dat':
            dat.append(files)
    return dat

def imageDecode(temp_path, dat_file_name, out_path):
    dat_read = open(temp_path, "rb")
    xo, j = Format(temp_path)
    if j == 1:
        mat = '.png'
    elif j == 2:
        mat = '.gif'
    else:
        mat = '.jpg'
    out = out_path + '/' + dat_file_name + mat
    png_write = open(out, "wb")
    dat_read.seek(0)
    for now in dat_read:
        for nowByte in now:
            newByte = nowByte ^ xo
            png_write.write(bytes([newByte]))
    dat_read.close()
    png_write.close()

def Format(f):
    dat_r = open(f, "rb")
    try:
        a = [(0x89, 0x50, 0x4e), (0x47, 0x49, 0x46), (0xff, 0xd8, 0xff)]
        for now in dat_r:
            j = 0
            for xor in a:
                j = j + 1
                i = 0
                res = []
                now2 = now[:3]
                for nowByte in now2:
                    res.append(nowByte ^ xor[i])
                    i += 1
                if res[0] == res[1] == res[2]:
                    return res[0], j
    except:
        pass
    finally:
        dat_r.close()

if __name__ == '__main__':
    main(into_path, out_path)


版权声明

本站名称:资源百科
本站永久网址:https://ziyuanbaike.com/
本站的文章部分内容可能来源于网络,如有侵权,请联系站长heytool@126.com进行删除处理。
本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

分享:

扫一扫在手机阅读、分享本文

发表评论
热门文章
  • 开源阅读App,附最新收录9000+的书源仓库!

    开源阅读App,附最新收录9000+的书源仓库!
    昨天看到开源阅读的官方频道发消息再一次推荐了一个阅读爱好者做的书源网站,今天给大家推荐分享一下。阅读(安卓)趣哥相信正在看文章的小伙伴绝大多数都知道阅读这个App吧,这是一个支持自定义书源的电子书阅读软件。但是阅读的大版本已经停更很久了,现在还在小版本更新,基本只有一些小修复,大家可以在下面分享的第一个书源仓库网站上下载它的最新版。不过就算阅读App停更,现在依然有大佬维护规则,而今天分享的两个书源网站就是收集了众多书源规则的书源仓库。Yiove书源仓库第一个是Yiove书源...
  • 2000T夸克盘学习资源

    2000T夸克盘学习资源
    2000T资源汇总,每天更新https://www.yunpan.com/surl_y9Q7sVRzXt6 (提取码:bfa4)实时更新链接https://docs.qq.com/sheet/DVGlvdE9mcFRxaXVn知乎盐选付费知识合集1200+PDF文档资源https://pan.quark.cn/s/5e21e6503e7d精整2024年1月国内外无损音乐专题【202.5GB】https://pan.quark.cn/s/f2a2ea58e35c【百科科普专区】...
  • 理想树《2025版初中必刷题 (全科上册) 》

    理想树《2025版初中必刷题 (全科上册) 》
    资源信息初中全科上册必刷题汇总,新考法、新素材,基础与重点并重,轻松备战中考。资源目录├── 初中必刷题-7上-道法人教版.pdf 263.83M ├── 初中必刷题-7上-道法人教版狂K重点.pdf 166.73M ├── 初中必刷题-7上-道法人教版批注式详答与详析.pdf 184.32M ├── 初中必刷题-7上-地理人教版.pdf 272.09M ├── 初中必刷题-7上...
  • 资源百科:钢琴零基础让小白成人速成 免费资源分享

    资源百科:钢琴零基础让小白成人速成 免费资源分享
    钢琴零基础让小白成人速成链接:https://pan.quark.cn/s/f7cfef8c4f2f1—51节51后记.mp4 1—36节36《斯卡波罗集市》3.4拍.mp4 1—29节29《千千阙歌》前奏_16分音符.mp4 1—50节50名曲实战《致爱丽丝》2.mp4 1—31节31《亡灵序曲》the_dawn.mp4 1—24节24《遇见》跨小节切分.mp4 1—46节46名曲实战《卡农》2.mp4 ...
  • 大量五花八门资源,不收藏后悔系列九

    大量五花八门资源,不收藏后悔系列九
    「老鹰AE系统进阶教程 AE202...拍合成MG动画教程」https://www.aliyundrive.com/s/51M4a5a8wwX「认识地球-中级课程_399元」https://www.aliyundrive.com/s/TWNMPrjmBZ4「恶魔奶爸 sam 影响100万人的英语学习方法」https://www.aliyundrive.com/s/CRuzRbhPNqZ「亚洲小姐出镜亲授: 每个...魅力技巧(完结)」https://www.aliyundri...