• 欢迎光临~

BUUCTF:[MRCTF2020]不眠之夜

开发技术 开发技术 2022-07-24 次浏览

题目

安装

linux下拼图工具gaps安装教程 - 简书 (jianshu.com)

apt-get install graphicsmagick-imagemagick-compat

 

解题代码

注意要删掉一张没用的损坏图片

montage *.jpg -tile 10x12 -resize 1000x600 -geometry +0+0 out.jpg #把图片碎片合成一个图片

gaps --image=out.jpg --generations=50 --population=120 --size=50 #还原原图片

参数说明:

*.jpg指目标为目录下所有的jpg格式图片

-geometry +0+0的用处是让图片之间没有间隙

resize后是最终合成图片的长x宽

tile后是从左往右张数x从上往下张数

size如何确定?

这道题的图片有一个特点,那就是长是宽的两倍,所以我们可以将一张子图片视为两张拼图(每张拼图是正方形的)

于是有,拼图的宽度,也就是size为600/12=50

过程遇到的挫折:

虚拟机传文件问题

文件夹被压大小问题

网上错误代码误导问题

等等

网上错误代码的纠正

 

montage -tile 10x12 -geometry 200x100+0+0 *jpg flag.jpg

关于montage的语法/传参问题

montage  -tile 10x12 -resize 200x100 *.jpg -geometry +0+0 out.jpg

当*.jpg在resize前面传入后,它接下来读到行和列对应的图片数就可以进行转换。至于重新设大小之类的等转完再说。

当*.jpg在resize后传入时,它会对指定的图片进行重新设定大小后再拼接。

*.jpg的.可以省略,没有影响

程序员灯塔
转载请注明原文链接:BUUCTF:[MRCTF2020]不眠之夜
喜欢 (0)