一个蛋疼的CTF图片隐写

时间:2023-03-09 07:14:12
一个蛋疼的CTF图片隐写

话不多说,直接上原题

一个蛋疼的CTF图片隐写

TIPS:心中无码

打开解题链接,是一张png图片,直接用16进制编辑器打开,没有附加其它文件。
看下文件区段信息也很正常。

又拖进stegsolve,Blue的0位很不正常

一个蛋疼的CTF图片隐写

多次尝试主要是因为:1.图像数据是“先行”还是“先列”处理;2.b0去除打码部分后的数据怎么利用的问题。3.如何确定黑白问题

直接上代码吧

#coding:utf-
from PIL import Image lena = Image.open('Lena.png')
pic = Image.new("RGB",(,))
b0 = '' #将像素点弄为0,1代码
bnum = #总共多少位不是为黄 width,heigth = lena.size for x in range(width):
for y in range(heigth):
if (lena.getpixel((x,y))) != (,,): #使像素点不要为黄
if (lena.getpixel((x,y))[] & 0x01):
bnum +=
b0 += "" #无所谓,反位一下即可
else:
bnum +=
b0 += "" print bnum
print "\n"
#print b0 #根据之前的输出,得知总长度为90000,为300* nums = #90000长度 ,长乘宽
for i in range():
for j in range():
if b0[nums] =="":
pic.putpixel([i,j],(,,))
else:
pic.putpixel([i,j],(,,))
nums +=
pic.save("11.png")

黑是(255,255,255)扫不出来,改为了253