- [INSHack2017]hiding-in-plain-sight
foremost
flag{l337_h4xx0r5_c0mmun1c473_w17h_PNGs}
-
得到的 flag 请包上 flag{} 提交。
不明全部,稍做记录。
得到一张类似二维码的小图
将其分离出rgb三个通道(笔者用的stegsolve)
根据拼接,得到类似汉信码
存在一定的爆破和容差
from PIL import Image
from random import randint
for k in range(5):
# 用到的三张图片就是上面说的 RGB 通道分开的图片(未放大10倍)
R = Image.open('solved_r.bmp')
G = Image.open('solved_g.bmp')
B = Image.open('solved_b.bmp')
GBR = Image.new('RGB', (31, 31))
TMP = Image.new('RGB', (7, 7))
GBRReadble = Image.new('RGB', (372, 372))
n_r = 0
n_g = 0
n_b = 0
p_r = R.load()
p_g = G.load()
p_b = B.load()
pim = GBR.load()
pimr = GBRReadble.load()
tmp = TMP.load()
for i in range(31):
if i%3 == 0:
for j in range(31):
pim[i, j] = p_g[j, n_g]
n_g = n_g + 1
elif i%3 == 1:
for j in range(31):
pim[i, j] = p_b[j, n_b]
n_b = n_b + 1
elif i%3 == 2:
for j in range(31):
pim[i, j] = p_r[j, n_r]
n_r = n_r + 1
for i in range(0, 7):
for j in range(0, 7):
tmp[i, j] = pim[i, j]
TMP = TMP.rotate(180)
tmp = TMP.load()
for i in range(0, 7):
for j in range(0, 7):
pim[i, j] = tmp[i, j]
for i in range(14, 23):
for j in range(24, 31):
if (randint(0, 1) == 0):
pim[i, j] = (0,0,0)