知识点
1.pngLSB隐写
步骤
方法一:zsteg
打开附件,是一张图片,打开看不懂(其实由两种颜色构成,0和1),用zsteg查看,发现隐写了一张jpg图片,使用zsteg提取。打开jpg图片得到flag。
zsteg -e b1,r,lsb,xy file.png > 1.jpg
方法二:stegsolve
用stegsolve打开,选择data extract ,因为图片由红和绿两种颜色组成,所以可以只勾选红或者绿,或者都勾选,在勾选red通道时发现隐写数据的开头为FFD8FF,这是jpg图片的头部。
保存为二进制文件明为jpg后缀。打开图片得到flag。
方法三:脚本(官方的wp)
from PIL import Image
import os
import bitstringimage_name = 'b.png'
current_path = os.path.dirname(__file__)
im = Image.open(os.path.join(current_path,image_name))
image_width = im.size[0]
image_height = im.size[1]
# load pixel
pim = im.load()
bin_result = ''
for row in range(image_height):for col in range(image_width):if pim[col,row][0] == 255:bin_result += '1'else:bin_result += '0'
with open(os.path.join(current_path,'result.jpg'),'wb') as f:f.write(bitstring.BitArray(bin=bin_result).bytes)