用stegsolve打开下载下来的图片,发现在red plane 0,green plane 0,blue plane 0处都有一些东西
打开data extract模式提取信息
直接打开发现打不开,用010打开
发现前面多了一些字符,删除就可以看到半张二维码
接下去应该就是修改高度
这时候就变成了一张完整的二维码,但是发现用 QR research直接打不开,我是再用截屏软件snipaste截了一下保存就可以扫描了
扫出来一个网站,网站下载下来的文件里并没有flag
查了一下wp才知道这里有ntfs文件隐写
这里一定先用winrar解压,其他解压软件好像不行
解压出来以后用NtfsStreamsEditor扫描,扫描出一个pyc文件
然后再点击下面的导出按钮进行导出
就是这样一个pyc文件
接下来就是反编译这个文件,这里在我之前的博客有写怎么进行反编译
uncompyle6 -o aaa.py test.pyc
在命令行用这样的命令就可以,具体细节看下面的博客
https://www.cnblogs.com/Jinx8823/p/16251536.html
# uncompyle6 version 3.8.0 # Python bytecode 2.7 (62211) # Decompiled from: Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)] # Embedded file name: flag.py # Compiled at: 2017-12-05 23:42:15 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']
是这样的代码,我们写个脚本给它反推回去就可以
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)): if (i % 2 == 0): a = int(ciphertext[i]) - 10 else: a = int(ciphertext[i]) + 10 a = i ^ a flag = flag + chr(a) print(flag)
这里的a[::-1]的意思就是从最后一个元素往前读
a=[1,2,3,4,5,6] b=a[::-1] print(b)
结果就是下面这样