工具:
1. 原理
乱码图
开头的两个值几乎都是3F 18,同时我们了解到网络中传输的图片多为jpeg格式,而jpeg格式的图片开头两个16进制的值通常为FF D8,打开计算器,将这两个值异或一下,得到两个16进制的值,通常来说应该是一样的,那么这个16进制的值就是解码的关键了。
计算机
本机的结果是C0,那么我们只需要将dat文件的所有数据都与C0异或便可以得到解密数据了,同时把数据保存为png格式便可以使用看图软件直接查看了。
3. 编程实现批量dat图片批量解密
1) 获取指定路径下的所有dat文件,进入for循环等待处理
2) 按次序读入dat文件,按byte对其数据与C0进行异或
3) 将异或后的数据保存下来,后缀改为png,输出到指定文件夹
图片解码的代码:
def imageDecode(f,fn):dat = open(f, "rb")out = output_path fn ".png"png = open(out, "wb")for now in dat: for nowByte in now: newByte = nowByte ^ 0xC0 #修改为自己的解密码 png.write(bytes([newByte]))dat.close()png.close()
工具和博文地址:
需要就去百度搜【源代码设计笔记】进入后点击【demo】。
也可以直接点下边网址:
http://www.sdxlp.cn/tool/wechatdat
效果图:
效果图