各类常见文件16进制头文件
常见文件16进制文件头汇总!!
文件类型 | 文件头标识 | 文件尾标识 |
---|---|---|
.7z | 37 7A BC AF 27 1C | |
.GIF | 47 49 46 38 | 00 3B |
.jpg | FF D8 FF | FF D9 |
.png | 89 50 4E 47 | AE 42 60 82 |
.rar | 52 61 72 21 | C4 3D 7B 00 40 07 00 |
.zip | 50 4B 03 04 | 50 4B |
25 50 44 46 2D 31 2E |
0x00 zip压缩包伪加密分析
zip压缩包16进制数据块的简单分析(详细分析的相关文章非常多,这里不再分析)
需要重点注意三个数据标记块:
0000 第一块:压缩源文件数据块
(并非所有zip都是这样,但是字节位置代表信息一样) |
0001 第二块:压缩源文件目录区
|
0002 第三块:压缩源文件目录结束标志
50 4B 05 06 : 目录结束标志 |
0003 伪加密的辨别方法
0b00 无加密
压缩源文件数据区的全局加密为00 00
(或者是其他偶数的数值),即图示中第二个方框中的内容
同时压缩源文件目录区的全局方式位标记也为00 00
(或者是其他偶数的数值)(同样是图示中的第二个方框中内容)
0b01 伪加密
压缩源文件数据区的全局加密为00 00
(或者是其他偶数的数值),同时压缩源文件目录区的全局方式位标记为01 00
(或者是其他奇数数值)。发现伪加密时,只要将目录区的数值更改为非加密数值即可
0b10 真加密
压缩源文件数据区的全局加密为01 00
(或者是其他奇数数值),且压缩源文件目录区的全局方式位标记为01 00
(或者是其他奇数数值)
0x01 RAR文件头详细解析
以上表格中给出的为rar4的16进制文件格式,最新的rar5则有不同的16进制文件格式
头:52 61 72 21 1A 07 01 00
尾:1D 77 56 51 03 05 04 00
rar5格式的16进制文件并非像rar4一样相对固定,数块的位数(大小)是动态变化的,下面主要解析rar4格式的16进制文件(rar4文件现在比较少见,分析使用攻防世界中MISC的simpleRAR题目的文件)
rar文件通常包含 标记块、压缩文件头块、文件头块、注释头块,每一块中都包含以下内容:
名称 | 大小 | 说明 |
---|---|---|
HEAD_CRC | 2字节 | 所有块或块部分的CRC |
HEAD_TYPE | 1字节 | 块类型 |
HEAD_FLAGS | 2字节 | 块标记 |
HEAD_SIZE | 2字节 | 块大小 |
块类型的类型有以下几个:
标记块:HEAD_TYPE=0x72 |
下面分析几个数据块
0000 标记块
56 61 : HEAD_CRC,两个字节,所有rar文件都有 |
0001 压缩文件头
CF 90 : 压缩文件头CRC校验值 |
0002 文件头
D5 56 : HEAD_CRC,文件头的CRC校验码 |
0003 结尾块
C4 3D 7B 00 40 07 00 : 固定的结尾块 |
(所以按照此分析,攻防世界该题目的secret.png的文件头表示应该改成74)
0x02 .png文件分析
png文件涉及到高度、宽度的隐写,要分析16进制文件中的高度宽度的位置:
89 50 4E 47 0D 0A 1A 0A : 开头8个字节,表示png文件 |
图像宽度与高度不一定是正确的,可以用CRC校验码进行计算得出,所以图片隐写可以算出真实的高度后进行修改。