解题思路:
010editor中修改图片高度即可在图片中看到flag:
修改之后:
PNG(Portable Network Graphics)是一种无损压缩的位图图像格式,它设计用于在互联网上传输图像。PNG 图片的结构包括以下几个主要部分:
1. 文件头(File Header)**:PNG 文件的开头是 8 字节长的文件头,用于标识文件类型和版本。文件头的字节序列为:`89 50 4E 47 0D 0A 1A 0A`,其中 "89 50 4E 47" 是 "PNG" 的 ASCII 码,后面的字节是特定的分隔符和控制字符。
2. IHDR 块(Image Header Chunk)**:紧接着文件头的是 IHDR 块,它包含了图像的基本信息,如宽度、高度、位深、颜色类型、压缩方法、过滤方法和交织方法。IHDR 块的结构如下:
- 长度(4 字节):表示 IHDR 块的总长度,不包括长度字段本身和 CRC 校验字段。
- 类型(4 字节):表示块的类型,对于 IHDR 块,类型为 "IHDR"。
- 数据(可变长度):包含图像的基本信息,具体包括:
- 宽度(4 字节):图像的宽度,以像素为单位。
- 高度(4 字节):图像的高度,以像素为单位。
- 位深(1 字节):每个样本的位数。
- 颜色类型(1 字节):表示图像的颜色类型,如灰度、RGB、索引色等。
- 压缩方法(1 字节):表示图像数据的压缩方法,PNG 规定为 0(Deflate/Inflate 压缩)。
- 过滤方法(1 字节):表示图像数据使用的过滤方法,PNG 支持 5 种过滤方法。
- 交织方法(1 字节):表示图像数据是否交织以及如何交织。
- CRC 校验(4 字节):用于验证 IHDR 块的数据完整性。
3. PLTE 块(Palette Chunk)**(可选):如果图像是索引色或灰度,PNG 文件可能包含一个 PLTE 块,用于存储调色板信息。PLTE 块的结构类似于 IHDR 块,包含长度、类型、调色板数据和 CRC 校验。
4. IDAT 块(Image Data Chunk)**:IDAT 块包含了经过压缩的图像数据。一个 PNG 文件可以有多个 IDAT 块,它们串联在一起形成完整的图像数据
flag{He1l0_d4_ba1}