python微信数据解密 您所在的位置:网站首页 png可以转换成jpg python微信数据解密

python微信数据解密

2023-08-18 18:38| 来源: 网络整理| 查看: 265

python微信数据解密-dat文件转图片(JPG,PNG,GIF,附可执行文件exe) dat文件路径 (确保有路径,或自己修改) into_path = r'C:\image' # 微信image.dat文件路径 输出图片路径 out_path = r"C:\image\jpg\\" 直接上代码 # weixin_Image.dat 破解 # JPG 16进制 FF D8 FF # PNG 16进制 89 50 4e 47 # GIF 16进制 47 49 46 38 # 微信.bat 16进制 a1 86----->jpg ab 8c----jpg dd 04 --->png # 自动计算异或 值 import os into_path = r'C:\image' # 微信image.dat文件路径 #我这把路径写死了,运行可执行文件前 先创建这个路径把dat文件放在这 out_path = r"C:\image\jpg\\" """ 解码 param f: 微信图片路径 param fn:微信图片目录下的.dat return: """ def imageDecode(f, fn): dat_read = open(f, "rb") # 读取.dat 文件 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): """ 寻找文件 param f:微信图片路径 return: """ fsinfo = os.listdir(f) # 把路径文件夹下的文件以列表呈现 print(fsinfo) for fn in fsinfo: # 逐步读取文件 temp_path = os.path.join(f, fn) # 拼接路径:微信图片路径+图片名 if os.path.isfile(temp_path): # 判断目录还是.dat #temp_path需为绝对路径,判断是否为文件,也可 if not os.path.isdir(temp_path): print('找到文件路径{}'.format(temp_path)) fn = fn[:-4] # 截取字符串 去掉后缀.dat imageDecode(temp_path, fn) # 转码函数 else: pass def Format(f): """ 计算异或值 各图片头部信息 jpeg:ff d8 ff png:89 50 4e 47 gif: 47 49 46 38 """ 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)

小白也 可以直接使用打包好的exe软件

注意:

dat文件路径:C:\image\ 没有先创建好 将要转换的微信dat文件 放到此处 图片输出路径:C:\image\jpg\

**

微信dat文件转图片.exe

** https://download.csdn.net/download/qq_37673902/16063100

#***********************************************

闲于时间,回过头来看看,发现有一些bug,可以优化一下(2021.7.14) bug: 1.路径文件夹下,存在非dat格式的文件 会报错。 优化:只寻找dat格式文件,没有输出提示信息,并结束程序。 2.虽然可以处理jpg,png等的格式。但只保存了jpg的,修改成对应格式转换

#***********************************************

优化后代码

具体代码如下:

# weixin_Image.dat 破解 # JPG 16进制 FF D8 FF # PNG 16进制 89 50 4e 47 # GIF 16进制 47 49 46 38 # 微信.bat 16进制 a1 86----->jpg ab 8c----jpg dd 04 --->png # 自动计算异或 值 import os into_path = r'C:/image' # 微信image文件路径 out_path = r"C:/image/jpg" def main(into_path, out_path): dat_list = Dat_files(into_path) # 把路径文件夹下的dat文件以列表呈现 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] # 截取字符串 去掉.dat imageDecode(temp_path, dat_file_name, out_path) # 转码函数 value = int((num / lens) * 100) # 显示进度 print('正在处理--->{}%'.format(value)) def Dat_files(file_dir): """ :param file_dir: 寻找文件夹下的dat文件 :return: 返回文件夹下dat文件的列表 """ 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") # 读取.bat 文件 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): """ 计算异或值 各图片头部信息 png:89 50 4e 47 gif: 47 49 46 38 jpeg:ff d8 ff """ 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 # 记录是第几个格式 1:png 2:gif 3:jpeg 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)

谢谢阅读,感谢支持!如有错误,请多多指教 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有