【misc】ctf图片隐写总结类(下篇)

题目链接: https://pan.baidu.com/s/1Lnu3HwyGhU1Ba2EK7W9K_A?pwd=lulu 
提取码:lulu 

题目来源:NKCTF【easy_rgb

首先我们需要montage和gap的环境

下载教程:安装使用 gaps和montage_montage安装_poirotl的博客-CSDN博客

首先下载附件需要解压码

【misc】ctf图片隐写总结类(下篇)_第1张图片 

 我们需要找到key

打开key是一堆散乱的图片

我们用Montage+gaps拼图得到key

 montage *.png -tile 30x6 -geometry +0+0  flag_tmp.pnggaps --image flag_tmp.png  --size 125 --save#

30x6和125#-tile:设置每行每列的原始图片数量,

30x6 表示拼图的宽30张 高6张,这个要结合gaps多尝试几种不同组合才能得到正确的尺寸。#--size: 这里每张图片为125像素

【misc】ctf图片隐写总结类(下篇)_第2张图片

得到解压码NKCTF2023

解压zip文件,发现有3个txt文件

【misc】ctf图片隐写总结类(下篇)_第3张图片

 

他是把一个文件的RGB三个数值单独提取出来,要再把他们 合在一起

在010里创建个十六进制文本,我们按rgb的顺序一位一位的依次粘贴到010里

要么我们就使用脚本,这里的脚本是百度的

# 读取字节
file1 = open("r.txt", "rb")
file2 = open("g.txt", "rb")
file3 = open("b.txt", "rb")
 
# 写入字节
p = open("decode.txt", "wb")
 
data = []
 
# 循环1669次,每次依文件顺序读取
for a in range(149):
    # 设定每次往后读取一个字节
    i = file1.read(1)
    data.append(i)
 
    i = file2.read(1)
    data.append(i)
 
    i = file3.read(1)
    data.append(i)
 
for i in data:
    p.write(i)

得到原格式

 以16进制粘贴进010编辑

【misc】ctf图片隐写总结类(下篇)_第4张图片

 以zip形式保存得到一个txt文件

【misc】ctf图片隐写总结类(下篇)_第5张图片

 

压缩包末尾提示 AES-128

这是AES加密 加上之前得到的密钥

我们用网站:AES在线加密解密工具 - MKLab在线工具

【misc】ctf图片隐写总结类(下篇)_第6张图片

 得到flag

NKCTF{603fcdfc-652b-40e4-90cf-f27c2edc2d9f}

你可能感兴趣的:(网络)