场景:图片的十六进制编码顺序与期望相反,需要进行逆序
原十六进制:87 35 3B
逆序后:B3 53 78
import binascii from PIL import Image import pytesseract a = open("文件路径","rb+")#使用open函数以二进制形式打开文件 a = a.read()#read函数读取文件 hex = binascii.b2a_hex(a)#使用模块binascii把二进制文件转为十六进制 c = hex[::-1]#[::-1]把内容从后往前读取,也就是把文件倒过来读如:正序:123,那么[::-1]读取的内容就是:321 with open("flag.jpg","wb+") as d:#open("flag.jpg","wb+")以二进制的格式创建一个图片再使用weith as赋值给d d.write(binascii.a2b_hex(c))#用wirte()函数,再binascii模块把函数c的内以十六记住文件转为二进制的格式写入到函数d,保存为flag.jpg print("已保存到当前文件夹")#这时候去文件夹看flag是翻转的,于是顺着这个编写 image = Image.open("flag.jpg")#打开flag.jpg文件 image = image.transpose(Image.FLIP_LEFT_RIGHT)#使用参数transpose水平翻转图片 image.save("flag.jpg","PNG")#把文件夹内的图片,替换为已经翻转好的图片 print("替换为水平翻翻转的图片") #做一个图片的文字识别,得到flag read = Image.open("flag.jpg")#打开图片 text = pytesseract.image_to_string(read)#使用模块pytesseract图片文字识别 print("flag为:\n",text)#得到flag
标签:文件,image,binascii,jpg,flag,图片,open,逆序 From: https://www.cnblogs.com/willingyut/p/17658702.html