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

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

点点

2021-05-17 20:56 阅读 991 喜欢 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的账号,其中迁移微信聊天记录是很多小伙伴的必选项,那么如何将微信聊天记录迁移到新机上呢?来跟小编看看聊天记录传到导入另一个手机上的方法教程。不要眨眼哟!嘿嘿。重要的实操步骤来了。
很多的小伙伴,喜欢给自己起一个个性的签名,今天,小编给小伙伴们介绍修改微信中自己个性签名内容的方法,希望对小伙伴们有所帮助。
如今微信有手机版与电脑版,手机版的小视频怎么导出到电脑版?相信很多小伙伴都有在使用电脑端微信,其中的小视频如何才能导出呢?导出后又该如何保存呢?方法很简单,下面小编就来为小伙伴们介绍。
现在手机与电脑非常普遍,都有微信软件,有很多的功能,很多小伙伴们都搞不清楚,很多小伙伴都有在电脑上使用微信,其中的新消息通知声音如何才能打开或关闭呢?方法很简单,下面小编就就来为小伙伴们介绍。
现在微信是我们常用的软件,小程序也很多,当我们在有的微信公众号会发现一些好听的音乐或音频,那么我们如何把它保存下来呢?下面就来教一下小伙伴们吧。
微信语音铃声是可以进行设置成为自己喜欢的歌曲的,并且都是歌曲的副歌部分,就像是手机铃声一样,很多用户想要知道微信语音铃声怎么让对方听到歌曲,这样设置的话才有意义.
当我们在微信小商店中上架了自己的商品链接后,想要让自己的商品得到更多的曝光量,可以将商品连接挂到视频号中,让更多的小伙伴们看到,那怎么上架自己的商品链接呢,下面就和小编一起来看看吧!
微信在后台反复读取用户相册,真实情况如何?该如何保护用户隐私信息?很多的东西都是有双面性的,我们应该学会权衡利弊,不要被网络带节奏啊!什么对?什么错?每个人心中都有一杆秤,遵从自己的内心就好啦。