pc端微信用户图片DAT格式解码为图片

pc端微信用户图片DAT格式解码为图片

点点

2021-05-17 20:56 阅读 888 喜欢 2

电脑越来越慢,发现硬盘空间被大量占用,发现是微信自己账号下的Image文件夹引起的,因不清楚里面的图片有些是否有用,想清理一下。

会代码的朋友可以看一下代码,自己做一下。

不会代码的朋友可以看一下最后的结果,是否是自己想要的结果。如果是就去sdxlp.cn/tool/wechatdat这个地方看一下,是工具可以帮到你,比较糙,但好用。

进去后发现都是dat格式,无法打开。修改后缀后仍无法打开,被加密了。

二进制方式打开文件后发现是这样的。通过异或运算加密了。

解码代码如下(批量操作):

    #!/usr/bin/env python3
   # -*- coding: utf-8 -*-
    import os

     def main():
indir = r'G:\wx\2019-06'
outdir = r'G:\wx\out2019-06'

# 获取文件夹下所有文件
infiles = os.listdir(indir)

# 计数成功的文件个数
count = 0

# 循环每个文件进行判断、转换
for infile in infiles:
    # 获取文件名
    filename = infile[0:infile.find('.')]

    # 二进制读取文件
    f1 = open(os.path.join(indir, infile), 'rb')
    infilebytes = f1.read()
    newfile = []

    # 判断图片类型JPG,通过异或判定
    if (infilebytes[0] ^ 0xFF) == (infilebytes[1] ^ 0xD8):
        y1 = infilebytes[0] ^ 0xFF
        print('%s,文件是JPG图片,每个字节是根据0x%X异或进行加密' % (infile, y1))

        # 字节进行异或转换,组合成新的文件
        for i in infilebytes:
            newbyte = i ^ y1
            newfile.append(newbyte)
        newfile2 = bytes(newfile)

        # 写入新文件
        f2 = open(os.path.join(outdir, filename+'.jpg'), 'wb')
        f2.write(newfile2)
        count += 1

    # 判断图片类型PNG,通过异或判定
    elif (infilebytes[0] ^ 0x89) == (infilebytes[1] ^ 0x50):
        y1 = infilebytes[0] ^ 0x89
        print('%s,文件是PNG图片,每个字节是根据0x%X异或进行加密' % (infile, y1))
        for i in infilebytes:
            newbyte = i ^ y1
            newfile.append(newbyte)
        newfile2 = bytes(newfile)
        f2 = open(os.path.join(outdir, filename+'.png'), 'wb')
        f2.write(newfile2)
        count += 1

    # 判断图片类型GIF,通过异或判定
    elif (infilebytes[0] ^ 0x47) == (infilebytes[1] ^ 0x49):
        y1 = infilebytes[0] ^ 0x47
        print('%s,文件是GIF图片,每个字节是根据0x%X异或进行加密' % (infile, y1))
        for i in infilebytes:
            newbyte = i ^ y1
            newfile.append(newbyte)
        newfile2 = bytes(newfile)
        f2 = open(os.path.join(outdir, filename+'.gif'), 'wb')
        f2.write(newfile2)
        count += 1
    else:
        print('%s无法识别的类型!' % infile)
print('识别出图片%d张' % count)


    if __name__ == '__main__':
main()

运行结果:

转载请注明出处: http://sdxlp.cn/article/weixin002.html


如果对你有用的话,请赏给作者一个馒头吧 ...或帮点下页面底部的广告,感谢!!

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
想查看微信电脑版上的聊天记录,图片语音等内容,却找不到文件的保存位置。微信电脑版文件保存在哪里?方法很简单,下面小编就帮小伙伴们解惑。
微信作为一款广受欢迎的社交软件,语音功能是其重要的组成部分。有时候,我们可能会遇到需要转发微信语音的情况。那么,如何转发微信语音呢?
手机微信中可以借助不同的功能在首页界面中显示出上方的一句话,这样就可以让用户在其中看到自己设置的一句话,提醒自己的一句话文案,并没有太长的文案,所以很多小伙伴们想要知道微信怎么置顶一句话在界面,下面就让小编给小伙伴们介绍一下。
智能手机的时代,手机中有好多的app,而微信作为我们日常使用的软件,因为微信是一款聊天软件,在里面的功能有很多,很多小伙伴想要查看自己的头像更换了几次,但是不知道该怎么查看,下面就是小编带来的微信查看头像更换次数的方法。
很多的小伙伴在使用微信的时候比较好奇一个微信怎么申请注册两个账号呢?下面就来看一下小编给带来的一个微信申请注册两个账号的方法吧。
建群是为了方便小伙伴们联络,统一说些事情,但有时候也存在着不方便,比如当你上班的时,群里聊天老是让你的手机响或者震动,影响着工作。那么,微信群怎么设置静音呢?下面为小伙伴们讲解一下。
现在是智能化的时代,微信是我们现在经常会使用的社交软件。它又分为手机版与电脑版,今天小编就教给小伙伴们在电脑端,微信如何实现“开机时自动启动微信”功能。
最近有小伙伴问我:“手机误删了微信图片,还能找回来吗?”想了一想,似乎微信图片删除了就没了,找不回来呀。不过,有一个“曲线救国”的方法我们可以试试:就是将删除的微信聊天记录恢复,这样不就顺带着也把里面的图片恢复回来啦!那具体怎么做呢?