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

ziyuan 2024-08-06 阅读:143 评论: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进行删除处理。
本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

分享:

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

发表评论
热门文章
  • 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【百科科普专区】...
  • 资源百科:钢琴零基础让小白成人速成 免费资源分享

    资源百科:钢琴零基础让小白成人速成 免费资源分享
    钢琴零基础让小白成人速成链接: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...
  • 大量五花八门资源,不收藏后悔系列七

    大量五花八门资源,不收藏后悔系列七
    「霍金《时间简史》有声解读」https://www.aliyundrive.com/s/N38G9yPZA4P「撩妹追女神顶级教学」https://www.aliyundrive.com/s/NfYAEt8XNSw「字词典」https://www.aliyundrive.com/s/FromJrKbXBL「三阶魔方教程」https://www.aliyundrive.com/s/DGh38jR2aVn「影响历史进程的九大科学家...9册)爱因斯坦 等」https://www....
  • 资源百科:35部高分复仇电影 收藏版

    资源百科:35部高分复仇电影 收藏版
    V字仇杀队.2005 .mp4看不见的客人.2016.mp4恶人传.2019. mp4蒙太奇.2013.mp4毁灭之路.2002.mkv幸运数字斯莱文.2006 Chosen1.mkv疾速追杀2.2017.mkv守法公民.2009.mp4局内人.2006.mp4七天.2007.mkv疾速追杀.2014.mkv杀死比尔.2003.rmvb杀死比尔2.2004.rmvb疾速追杀3.2019.mkv理发师陶德.2007.mkv猛龙过江.1972.mkv不可饶恕.1992.mkv被解...