喵喵喵
这个题目很有意义,学习到了很多
开始下载得到一张白猫的图片,看起来很可爱,结果——————
开始010与binwalk都没有发现什么东西,打开Stegsolve发现RGB的最低位都有一些奇怪的东西
试一试LSB隐写然后就找了好久终于找到了
开心的把它保存了,结果发现图片头多了一些东西
我用010改不了不知道为什么就用winhex改了,发现了半张二维码,然后就是常规的改高度
再放入Stegsolve取反然后扫描,得到flag.rar_免费高速下载|百度网盘-分享无限制 (baidu.com)
解压得到
就十分的“开心(*^▽^*)”
就想了一下之前的题目,就试一下NTFS发现了一个pcy后缀
python的反编译
1 # uncompyle6 version 3.5.0 2 # Python bytecode 2.7 (62211) 3 # Decompiled from: Python 2.7.5 (default, Nov 16 2020, 22:23:17) 4 # [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] 5 # Embedded file name: flag.py 6 # Compiled at: 2017-12-05 23:42:15 7 import base64 8 9 def encode(): 10 flag = '*************' 11 ciphertext = [] 12 for i in range(len(flag)): 13 s = chr(i ^ ord(flag[i])) 14 if i % 2 == 0: 15 s = ord(s) + 10 16 else: 17 s = ord(s) - 10 18 ciphertext.append(str(s)) 19 20 return ciphertext[::-1] 21 22 23 ciphertext = [ 24 '96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132', '46', '112', '64', '97', '88', '80', '82', '137', '90', '109', '99', '112']
然后解码
1 def decode(arg1): 2 ciphertext = arg1[::-1] 3 flag = '' 4 for i in range(len(ciphertext)): 5 if i % 2 == 0: 6 s = int(ciphertext[i]) - 10 7 else: 8 s = int(ciphertext[i]) + 10 9 s = s ^ i 10 flag += chr(s) 11 print(flag) 12 13 if __name__ == '__main__': 14 ciphertext = [ 15 '96', 16 '65', 17 '93', 18 '123', 19 '91', 20 '97', 21 '22', 22 '93', 23 '70', 24 '102', 25 '94', 26 '132', 27 '46', 28 '112', 29 '64', 30 '97', 31 '88', 32 '80', 33 '82', 34 '137', 35 '90', 36 '109', 37 '99', 38 '112'] 39 decode(ciphertext)
最后终于得到了