十六进制文件特征
图片文件:
JPEG:文件头格式FF D8 FF;文件尾格式FF D9
PNG:文件头格式89 50 4E 47 0D 0A 1A 0A;文件尾格式49 45 4E 44 AE 42 60 82
GIF:文件头格式47 49 46 38 39 61;文件尾格式00 3B
BMP:文件头格式42 4D;文件尾格式00 00 00 00
音频文件
MP3:文件头格式49 44 33;文件尾格式FF FB
WAV:文件头格式52 49 46 46;文件尾格式3E 00 00 00
视频文件
AVI:文件头格式52 49 46 46;文件尾格式00 00 00 00
MP4:文件头格式00 00 00 20 66 74 79 70 69 73 6F 6D;文件尾格式 00 00 00
压缩文件
ZIP:文件头50 4B 03 04;文件尾50 4B 05 06
RAR:文件头52 61 72 21 1A 07 00;文件尾00 00 00
7z:文件头37 7A BC AF 27 1C
文档文件
PDF:文件头25 50 44 46;文件尾0A 25 25 45 4F 46
DOCX:文件头50 4B 03 04;文件尾50 4B 05 06
EXE:文件头4D 5A
ELF:文件头7F 45 4C 46
关于ZIP的伪加密
数据的开头是50 4B 03 04这四个字节叫做文件头标记;PK后文件压缩位置有两个字节14 00标识了解压文件PKWARE需要的版本;在往后的00 00叫做全局方式位标记(这里可以判断这个压缩包有无加密,当两个字节为00 00或者第一个字节为偶数是无加密状态,但是如果把第一个字节改成奇数如01 00即显示加密状态)

压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
00 00:扩展记录长度
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了。注意:这里只要是奇数就是加密,偶数就是未加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
24 00:扩展字段长度
00 00:文件注释长度
00 00:磁盘开始号
00 00:内部文件属性
20 00 00 00:外部文件属性
00 00 00 00:局部头部偏移量
压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
59 00 00 00:目录区尺寸大小
3E 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP 文件注释长度
关于RAR的伪加密
因为会做头部校验一般打开时会报错,通过第24个字节实现加密判断如位数为0即不存在加密,如改为0后压缩包不报错即为伪加密


Comments NOTHING