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

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

点点

2021-05-17 20:56 阅读 1041 喜欢 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


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

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
腾讯微信的深度清理功能可以帮助深度的清理微信中的陈年旧东西,帮助我们微信减负,这样就可以减少手机紧张的内存,所以是非常方便的清理微信的功能,但是很多用户不知道在哪,下面就让小编给小伙伴介绍一下微信深度清理功能在哪里找。
中间发现一些图片总是失败,考虑到应该是图片的格式问题,最后兼容了下jpg gif png 这三个格式,基本上能把所有的图片全部转化成功了。现在代码已更新完成。
这么的小伙伴们每天都在使用微信,那它肯定得有不少超赞的功能吧?那么,微信到底藏着哪些逆天的功能呢?别急,别急,接下来小编来给小伙伴们揭秘一下吧!
智能手机已经成了我们必不可少的生活用品,而微信的使用率也是非常的高,您能说出您一天要打开多少次微信吗?微信今天收到了多少图片和视频吗?那么我们怎样快速准确的去清理手机内存哪?
日常生活工作中,微信作为国内使用最多的即时通讯软件,应该有不少的小伙伴们,在平时的工作和生活中,使用微信来接收各种资料和文件吧。但小伙伴们在电脑上使用微信接收文件的时候,知不知道这些微信文件保存在电脑的哪个文件夹中呢?该如何清理哪?
微信占内存越来也大,该怎样处理哪?该怎么查看?
微信聊天记录占用的手机空间太多了,只能走这种路线了,没有办法的办法,现在跟小编来看一下工具是如何使用的,看到的小伙伴们,尽量提前保存,应该没有几天会被和谐掉。
智能手机中有 QQ,钉钉,微信等通讯软件,微信是现在最常用的社交软件之一,有很多的功能很多小伙伴们都不知道,那小编会不定期的进行微信功能的科普,有些小伙伴不知道手机微信怎么将好友移出黑名单,接下来小编就给小伙伴们介绍一下具体的操作步骤。