bugku misc-猫片

69 篇文章 0 订阅

通常做图片隐写的题,大概都是先右键查看属性,看下有没有一些特殊的信息,没有就放binwalk看下有没有隐藏什么文件,又或者直接stegsolve分析一波,这题一开始我都试了一遍,无果。但是总不能就这样放弃吧,应该还是漏了点东西。然后折腾了快一个小时,好像有点发现,

其中

R,G,B代表RGB
Alpha代表灰度
0-7的8个选择框代表其二进制值的8个位,选中代表显示该位,不选中则不显示
Row,Column表示不同的显示方式,行或列
MSB,LSB表示显示为最高位还是最低位
Bit Plane Order选择不同的颜色通道顺序

在本题中,根据提示应选择LSB,BGR以及R,G,B三通道的0位(最低位),选中后点击Preview

在RGB里都发现了这奇怪的一段,然后就试着分析一波,
在这里插入图片描述
打算生成一个新的图片,不过要改下文件头
打开winhex将前面的FFFE移除,

在这里插入图片描述

保存之后出现惊喜,看到半张二维码的图片,接下来就可以考虑改一下图片的高度
在这里插入图片描述

这图是280140的,那就改成280280的试试,用winhex将高度改为01 18

得出一张完整的二维码
在这里插入图片描述

这二维码看着不大对劲,用画图反色(ctrl+shift+i),得出正确的二维码
在这里插入图片描述在这里插入图片描述

扫一下,发现有个百度网盘的地址。。。
在这里插入图片描述

下载下来是一个压缩包,
在这里插入图片描述

后来特意去查了下ctf隐写的各种信息,了解到还有一种ntfs文件流的东西

PS:flag.rar这个压缩文件一定要用winrar来解压才能找得到数据流。。。
在这里插入图片描述

.pyc文件,直接丢到这。。https://tool.lu/pyc/
在这里插入图片描述
在这里插入图片描述

下载之后写解密的脚本。。。

def decode():
    ciphertext = [
    '96',
    '65',
    '93',
    '123',
    '91',
    '97',
    '22',
    '93',
    '70',
    '102',
    '94',
    '132',
    '46',
    '112',
    '64',
    '97',
    '88',
    '80',
    '82',
    '137',
    '90',
    '109',
    '99',
    '112']
    ciphertext.reverse()
    flag = ''
    for i in range(len(ciphertext)):
        if i % 2 == 0:
            s = int(ciphertext[i]) - 10
        else:
            s = int(ciphertext[i]) + 10
        s=chr(i^s)
        flag += s
    return flag
 
def main():
    flag = decode()
    print(flag)
 
if __name__ == '__main__':
    main()

最后得出 flag{Y@e_Cl3veR_C1Ever!}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值