超实用!微信PC端图片dat转jpg格式简易Python程序

PC端微信会将图片进行异或加密再存储,把原本可以快乐jpg的全部搞成dat格式。某一天我想在PC端想找几个有用的历史图片,发现dat没法打开,研究了一下,搞到了dat转jpg的py代码,如有侵权立删。

就这种简单方法,在百度和知乎还有人忽悠交几十块钱去买他的转化程序,互联网时代割韭菜钱也来得太快了吧?我们不能被忽悠,下面这个python3的代码,复制到你自己的编译器,只需要修改一下导入和导出的文件路径,run一下就全部自动给出来了,免费的。

但是有个条件,这玩意儿对你有用,以后就多访问望江雁的网站。请记住我的域名xianghonghuang.cn,以后还会持续出一些有用的技术贴,即使不炒股、不玩音乐、对文学没兴趣,你来我这也可以掌握真枪实弹的技术。

import os
into_path = r'E:\wendang\WeChat Files\wxid_wa8ztuagwm9q32\FileStorage\Image\2020-07'  #请将想导入的dat文件的路径复制到引号里面,修改此处代码				
out_path = r"E:\jpgs"  #运行代码前记得修改导出路径,此处是导出到E盘的jpgs空文件夹下

def imageDecode(f, fn):
    dat_read = open(f, "rb")  
    xo = Format(f)  							
    out = out_path + fn + ".jpg"  					
    print("导出文件的路径{}".format(out), end='\n\n')
    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 findFile(f):
    fsinfo = os.listdir(f) 		 					
    print(fsinfo)
    for fn in fsinfo:  								
        temp_path = os.path.join(f, fn)  			
        if os.path.isfile(temp_path):  
            print('导入的文件路径是{}'.format(temp_path))
            fn = fn[:-4]  							
            imageDecode(temp_path, fn)  			
        else:
            pass

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

if __name__ == '__main__':
    findFile(into_path)

84,429人评论了“超实用!微信PC端图片dat转jpg格式简易Python程序”

发表评论

您的电子邮箱地址不会被公开。

hg欢迎第9622位访客,您的IP是: 52.14.150.55
粤ICP备2021078811号