STEGA-直接附加
STEGA-直接附加
wuliwaSTEGA-直接附加
简单介绍一下
众所周知,文件后缀往往反应着文件类型,but!实际上不一定准确,文件后缀可以进行修改,但文件类型不一定因为文件后缀被修改而变化。而程序们有自己的方式去判断文件类型,并按照正确的方式去读取文件,这就是文件头的作用了~
大部分文件类型的文件结构是:文件头+文件内容(+文件尾) (文件尾并非所有文件类型都有)
含有文件尾的文件读取时,读到文件尾就结束了,而文件尾后的内容会被忽略,不会对文件的查看造成影响,故而能在文件后写入隐藏的信息/文件,这就是直接附加了sa~
举个例子
大部分文件都有其固定的文件结构,常见的图片格式如PNG、JPG等都是由一系列特定的数据块组成的。
下面以PNG文件为例介绍一下~
PNG文件由4部分标准数据块和一些辅助数据块组成,以下是四个标准数据块:
- IHDR文件头数据块 (并非文件头!!!)
- PLTE调色板数据块
- IDAT图像数据块
- IEND图像结束数据块
而每一个数据块都由四部分组成:
- length长度
- chunk type code数据块类型码
- chunk data数据块数据
- CRC循环冗余校验码
而其中IEND数据块的长度总是00 00 00 00,数据标识总是49 45 4E 44CRC固定为AE 42 60 82。
所以一般PNG文件以固定00 00 00 00 49 45 4E 44 AE 42 60 82作为结束。此时在82之后(即IEND数据块之后)添加其他内容/文件,在查看图片时则会被图片查看器忽略。
一些常见的文件类型~
下面来看看一些常见的文件类型和他们的相关内容吧~
| 文件类型 | 扩展名 | 文件头 | 文件尾 | ASCII / 说明 |
|---|---|---|---|---|
| JPEG | .jpg .jpeg |
FF D8 FF |
FF D9 |
文件头为ÿØ,文件尾是ÿÙ |
| PNG | .png |
89 50 4E 47 0D 0A 1A 0A |
00 00 00 00 49 45 4E 44 AE 42 60 82 |
文件头为‰PNG..,文件尾是 IEND chunk |
| GIF87a | .gif |
47 49 46 38 37 61 |
3B |
文件头为 GIF87a,尾字节 3B 是 GIF Trailer |
| GIF89a | .gif |
47 49 46 38 39 61 |
3B |
文件头为 GIF89a,尾字节同样是 3B |
.pdf |
25 50 44 46 2D |
25 25 45 4F 46 |
文件头为 %PDF-,文件尾为 %%EOF |
|
| ZIP | .zip .jar .apk .docx .xlsx .pptx |
50 4B 03 04 |
50 4B 05 06 |
文件头为PK... |
| 空 ZIP | .zip |
50 4B 05 06 |
50 4B 05 06 |
PK 05 06空 ZIP 可能直接以 EOCD 开头 |
| TAR | .tar |
75 73 74 61 72,偏移 0x101 / 257 |
两个连续的 512 字节全零块 |
TAR 的 ustar 不在文件开头,而是在偏移 257 处 |
| XZ | .xz |
FD 37 7A 58 5A 00 |
结尾通常为 59 5A |
文件头为.7zXZ.,59 5A 即 ASCII YZ,是 XZ Stream Footer 末尾魔数 |
| RAR4 | .rar |
52 61 72 21 1A 07 00 |
无 | 文件头为Rar!... |
| RAR5 | .rar |
52 61 72 21 1A 07 01 00 |
无 | 文件头为Rar!... |
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果





