这道题会用到盲水印脚本,这里我先把盲水印脚本的安装过程捋一遍,因为这个安装问题困扰我好久,为了避免和我一样的菜鸟踩坑。这个方法适用windows中的python2和Python3
首先从github上下载盲水印脚本,chishaxie/BlindWaterMark: 盲水印 by python (github.com)
这个直接放在本地执行是不能用的,我们需要配置一下环境,需要安装两个库一个是opencv-python另一个是matplotlib,这两个库的安装需要和自己的python版本对应不然会报错。我们需要到这个网站找到对应的版本Python Extension Packages for Windows - Christoph Gohlke (uci.edu),比如笔者使用的是python2.7和python3.9,
可以看到对用python版本的库版本,记住这个版本,然后使用一下命令
pip install opencv-python == 版本号(比如:4.5.3)
pip install matplotlib == 版本号(比如:2.2.5)
安装成功后应该没有什么大问题了。
接下来看题目,给出了一张图片,我们通过stegsovle工具发现是低位隐写,有一个压缩包
直接二进制保存,发现无法打开,使用010editor打开发现压缩包尾部有多余字符串,删除后即可解压成功。
发现一张一模一样的图片,那么可以有两种想法,首先是两张图片经过一些加减异或操作后会有flag,另一种就是盲水印了,这只是我们看到两张图片后的思路,当然这道题使用的是盲水印了。
python bwm.py decode apple.png pen.png 222.png
找到flag
这是是使用的python2的脚本跑出来,刚开始笔者使用python3跑的什么也没有,所以在实战的时候最好两个版本的脚本都尝试一下。