图片隐写
环境:Windows 11 / Linux
工具:ClearImage Demo / StegSolve
分析过程:拿到这张图片我们直接使用StegSolve工具 进行处理。
StegSolve是一款解决图片隐写问题的神器,需要注意的是这个工具是个jar包 ,需要java环境才能运行,以Windows 11为例,我们使用javaw -jar xxx.jar 命令即可打开工具。
将图片导入后,调整到合适大小,然后点击下方的箭头,我们发现在Red Plane 1通道左上角出现了隐藏的二维码。
保存图片后,我们使用ClearImage工具进行QR扫描,然后菜单栏里点击相应的条码。
接着会出现以下页面,继续点击OK
然后我们就可以在弹出的页面中得到了一些十六进制的组合。
我们将这些十六进制组合复制到WinHex中,我们在右侧十六进制转ASCII码中发现了flag和1.py等关键字,考虑这是一个文件的二进制流,我们先将其保存。
然后我们打开Linux终端,对保存的文件使用file命令,可知该文件是python2下被编译的文件。
将文件名修改为noname.py并运行,发现运行后没有报错也没有显示任何东西。因此我们考虑是pyc文件 ,它是由Python文件经过编译后所生成的文件,它是一种字节码 byte code,因此我们直接查看就是乱码的,但是这种字节码是可以反编译的,因此我们将文件后缀修改为.pyc
然后使用Easy Python Decompiler对文件进行反编译。
我们会得到反编译文件,后缀为.pyc_dis,然后我们使用vim将其打开,发现是一个函数,但是没有调用,我们在最后加上flag()调用一下该函数即可运行。
我们使用python2运行后即可得到flag
总结:这看起来虽然是一道简单的图片隐写题,但后续涉及到python的编译与反编译,需要一定编程基础。



