Bugku_misc_猫片解法
题目下载地址:
http://ctf.bugku.com/files/9f1bebac6b8282da716720cc99f35bed/png

题目保存后缀名png,得到一只小猫咪。

用Stegsolve查看LSB的时候,发现隐藏了一张png。

点击Save Bin保存为1.png,然后修复下文件头。

发现了半张二维码。

计算高度是0x118,修改得到完整二维码。图片取反得到百度云下载链接。

下载得到flag.rar解压。

修复rar文件

网上的wp说此处为NTFS流隐写,不是很懂,不过修复rar的区块头就行。 这个文件是个pyc文件,区块头应该为0x74

网上找了一个pyc反汇编工具

python 反编译工具名称: Easy Python Decompiler

工具下载地址:http://sourceforge.net/projects/easypythondecompiler/?source=directory

# Embedded file name: flag.py
import base64

def encode():
    flag = '*************'
    ciphertext = []
    for i in range(len(flag)):
        s = chr(i ^ ord(flag[i]))
        if i % 2 == 0:
            s = ord(s) + 10
        else:
            s = ord(s) - 10
        ciphertext.append(str(s))

    return ciphertext[::-1]


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']

逆出加密算法得到解密算法:

#author:reborn
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=ciphertext[::-1]
    flag=''
    for i in range(len(ciphertext)):

        s=int(ciphertext[i])    
        if i % 2 == 0:
            flag+=chr( (s-10) ^ i)
        else:
            flag+=chr( (s+10) ^ i)
    print flag

decode()   

flag{Y@e_Cl3veR_C1Ever!}