python微信图片dat转码(整理版)

环境

Python 3.6.3

模块

os

工具

程序员计算器

目的

通过python 实现电脑版微信中图片转码(原.dat转成JPG或PNG)
在这里插入图片描述

分析

据说微信图片是用异或值加密(实际就是转码)
1.先用工具打开.bat文件,但会看到一堆乱码。如下图
在这里插入图片描述
用notepad++的话可以,通过插件以16进制打开。(怎么用notepad打开16进制点这) 16进制打开如下图
在这里插入图片描述
再用 16进制打开JPG 图片如下图
在这里插入图片描述
由于知道了.bat的开头值为:e1 c6 .JGP的开头值为:ff d8
此时可以通过程序员计算器,计算异或值
计算公式:e1 Xor ff = 1e ;c6 Xor d8 = 1e
由此可知16进制异或值为:0x1e
在这里插入图片描述
知道异或值就可以撸代码:
原理就是把.bat里面的16进制都值都异或0x1e ,
例子:0xe1 ^ 0x1e = 0xff; 0xc6 ^ 0x1e = 0xd8 ……
代码如下

# weixin_Image.bat 破解
# JPG 16进制 FF D8 FF
# PNG 16进制 89 50 4e
# 微信.bat 16进制 e1 c6 e1
# key 值 1e1e 0x1e  weixin.bat-jpg

import os
#微信image文件路径
into_path = r'D:\Project0611\weixin_image\weixin1212800'
#微信图片转码后的保存位置
out_path = r'D:\Project0611\weixin_image\weixin1212800\\'

def imageDecode(f,fn):
    """
    解码
    :param f: 微信图片路径
    :param fn:微信图片目录下的.bat
    :return:
    """
    # 读取.bat
    dat_read = open(f,"rb")
    # 图片输出路径
    out = out_path + fn + ".jpg"
    # 图片写入
    png_write = open(out,"wb")
    # 循环字节
    for now in dat_read:
        for nowByte in now:
            # 转码计算
            newByte = nowByte ^ 0x1e
            # 转码后重新写入
            png_write.write(bytes([newByte]))
    dat_read.close()
    png_write.close()
    # pass

def findFile(f):
    """
    寻找文件
    :param f:微信图片路径
    :return:
    """
    # 把路径文件夹下的文件以列表呈现
    fsinfo = os.listdir(f)
    # 逐步读取文件
    for fn in fsinfo:
        # 拼接路径:微信图片路径+图片名
        temp_path = os.path.join(f,fn)
        # 判断目录还是.bat
        if not os.path.isdir(temp_path):
            print('文件路径:{}'.format(temp_path))
            print(fn)
            # 转码函数
            imageDecode(temp_path,fn)
        else:
            pass

# 运行
findFile(into_path)

结果图:
在这里插入图片描述
githu代码
https://github.com/zkzhang1986/weixinImageDecode

Python微信图片数据(image dat)是指在使用Python编程语言时,处理微信中的图片数据。微信是一款很流行的社交媒体应用程序,用户可以通过微信发送、接收和分享各种类型的信息,包括文字、图片、视频等。当用户发送图片给其他用户时,这些图片数据需要经过处理和传输。 在Python中,我们可以使用一些库和模块来处理微信中的图片数据。例如,我们可以使用Python的PIL(Python Imaging Library)库来读取、修改和保存图片。该库提供了一些函数和方法,可以打开图片文件、对图片进行编辑和转换,并将修改后的图片保存在文件系统中。 此外,我们还可以使用Python的requests库来从微信服务器下载图片微信服务器存储了用户发送的图片数据,我们可以通过发送HTTP请求来获取这些图片数据。使用requests库发送HTTP请求,并通过读取响应内容获取图片数据,然后将数据保存在本地文件中。 在处理微信图片数据时,还可以使用一些其他库来完成一些特定的任务。例如,使用NumPy库可以对图片进行数值计算和处理;使用OpenCV库可以进行图像处理和计算机视觉相关的任务;使用matplotlib库可以绘制和显示图片等。 综上所述,Python微信图片数据处理涉及到使用Python的PIL、requests等库来读取、修改、下载和保存微信中的图片数据。可以根据具体需求选择合适的库和方法来处理和操作微信图片数据。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值