CTF中misc图片隐写的一些套路
1、直接使用winhex打开,搜索flag。
2、查看图片信息寻找flag。可以使用网站:https://exif.tuchong.com/
3、使用binwalk分析,发现有另一张图片,使用foremost分离图片。(binwalk和foremostkali自带)
4、使用binwalk -e分离数据,flag在分离后得到的文件里。
5、图片有2个IDAT块,使用tweakpng工具,尝试删除第一个IDAT块的数据,另存为后打开新图片。
6、图片有很多个IDAT块,先使用PNGDebugger跑一下,看看有没有出错的IDAT块,没有就慢慢试一个一个删除看看。
7、图片里面藏有另一个图片,并且使用binwalk -e和foremost都无法分离,就在winhex里手动分离。
8、使用zsteg发现隐藏数据,并用命令zsteg -E "extradata:0" misc17.png > 1.txt
提取出来。再使用binwalk提取1.txt中数据。
9、使用MagicEXIF查看图片,看看缩略图里有没有。
10、bmp文件修改宽高:使用010editor的bmp.bt模板进行修改。
11、png图片修改宽高:使用winHex修改。左框是图片宽度,右框是图片高度。
12、jpg格式图片修改宽高,用winhex打开图片,将图片宽或高转换成16进制在winhex中搜索,之后修改。
13、gif的每一帧都有宽高所以修改的地方不止一处。
14、计算正确的宽度(当知道正确高度):
通过winhex得到文件的文件头所占字节,和文件尾所在的字节。00为windows填充,此处显示为16进制,要转换为10进制。
因为每个像素点由3个字节(十六进制码6位)表示,每个字节负责控制一种颜色,分别为蓝(Blue)、绿(Green)、红(Red),所以文件真实的像素大小为:(总大小-文件头大小)/3。将真实大小除以真实的高度得到真实的宽度。