2025-09-25
杂项
00
请注意,本文编写于 71 天前,最后修改于 71 天前,其中某些信息可能已经过时。

目录

图片隐写-实战
1.0 admin.exe
1.1 flag.jpg
1.2 no_hex.png
1.3 shack.png
1.4 dog.jpg
网站集锦:

图片隐写-实战

我每次做图片隐写都有一个固定的流程:

下载文件->拖进二进制工具->检查文件头和文件尾(如果有需要需要还原文件)->拖入stave查看通道->拖入binwalk检查是否有包含的文件->检查频率......(后面就是工具的使用)

本文末尾我会给出一些好用的图片分析网站,包含一些GIF还原,更强大的二维码识别等

1.0 admin.exe

  • 先下载到这个文件:

image.png

  • 直接拖进winhex(和010一个功能)里面看一下

image.png

  • 这里可以注意到,文件头为:
89 50 4E 47 0D 0A 1A 0A

标准的png格式,那么我们就需要把exe改为png

  • 更改后缀

image.png 这里出现了一个二维码,拿出手机扫一下就能获得flag

1.1 flag.jpg

  • 下载到文件:

image.png

  • 标准流程,先拖进winhex看看

image.png

刚开始没看到文件头,我本来寻思是什么txt之类的文件直接改的,但又想到文件是完好的不太可能,回去翻了一下别人写的wp,这里原来是文件数据倒转

可以看到文件末尾GNP,倒过来不就是PNG嘛,这里要还原的话需要写个小脚本:

python
a = open('flag.jpg','rb') #读取flag.jpg图片的byte数据 b = open('png.png','wb') #新建一个名为png.png的图片,写入byte数据 b = b.write(a.read()[::-1]) #将flag.jpg图片的byte数据,倒着写入png.png图片里
  • 直接就获取到了flag图片

image.png

1.2 no_hex.png

  • 下载文件:

image.png 这里发现图片根本打不开,这也就是我上面提到的,其他文件直接改后缀会出现的情况---文件损坏

  • 拖进winhex继续看

image.png

后面没什么异常,但是文件开头全是0,很明显是被删掉了,根据png的文件头进行还原

89 50 4E 47 0D 0A 1A 0A

image.png 注意:尽量先备份文件再更改!!!

  • 然后图片就正常了:

1758776831845.png

1.3 shack.png

这题涉及图片宽高的改写,需要先知道以下知识:

长度(Length):指定数据块中数据区域的长度,长度不可超过(2^31-1)个字节 数据块类型码(Chunk Type Code):数据块类型码由ASCII字母(A-Z和a-z)组成的"数据块符号" 数据块数据(Chunk Data):存储数据块类型码指定的数据 循环冗余检测(CRC):存储用来检测是否文件传输有误的循环冗余码

PNG图片: image.png

JPG图片:

image.png

BMP图片:

f17dd04c61a99180455ea8626d2d1c4a.png

  • 打开图片:

image.png

  • 感觉很明显缺了一部分,拖进winhex:

image.png

  • 更改这一部分数据

image.png

  • 保存后再看,flag已经出现了

image.png

1.4 dog.jpg

前面流程就不展示了,直接快进到binwalk扫描:

image.png

  • 很明显里面有隐藏的文件,下面进行提取;

image.png

注意:有时候binwalk提取出来的文件是损坏的,这时候你可以试试foremost工具,这个更准点,命令为:foremost dog.jpg -o dog //-o:指定输出的文件夹

网站集锦:

更强大的二维码识别:https://online-barcode-reader.inliteresearch.com/ GIF分解:https://tu.sioe.cn/gj/fenjie/#google_vignette 在线多功能图片工具:https://tu.sioe.cn/gj/

本文作者:晏秋

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!