文件逆序2

发布时间 2023-08-26 13:27:30作者: willingyut

场景:图片的十六进制编码顺序与期望相反,需要进行逆序

原十六进制: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