zip 伪加密学习,压缩包十六进制数据含义分析

zip 伪加密学习,压缩包十六进制数据含义分析

——

一个zip文件由三部分组成:

  1. 压缩源文件数据区

  2. 压缩源文件目录区

  3. 压缩源文件目录结束标志。

先拿一个正常的压缩包为例,用 010 editor 打开。
在 010 editor 里可以比较好得区分 zip 文件的三部分。如下图中,
前面的灰色背景的十六进制数字为压缩源文件数据区
中间紫色背景的十六进制数字为压缩源文件目录区
后面黄色背景的十六进制数字为压缩源文件目录结束标志

不同文件中每个部分的十六进制数据可能会有不同,但是根据每个部分的开头位置开始找,对应相同含义的数据会在相同的位置。
zip 伪加密学习,压缩包十六进制数据含义分析_第1张图片

压缩源文件数据区

50 4B 03 04:头文件标记

zip 伪加密学习,压缩包十六进制数据含义分析_第2张图片

0A 00:解压文件所需 pkware 版本

zip 伪加密学习,压缩包十六进制数据含义分析_第3张图片

00 00:全局方式位标记(通过此处判断有无加密),文件头标记后 2bites 。

zip 伪加密学习,压缩包十六进制数据含义分析_第4张图片

08 00:压缩方式

zip 伪加密学习,压缩包十六进制数据含义分析_第5张图片

72 98:最后修改文件时间

zip 伪加密学习,压缩包十六进制数据含义分析_第6张图片

c3 52:最后修改文件日期

zip 伪加密学习,压缩包十六进制数据含义分析_第7张图片

A7 DE 6A 5F:CRC-32校验(1480B516)

zip 伪加密学习,压缩包十六进制数据含义分析_第8张图片

07 00 00 00:压缩后尺寸(25)

zip 伪加密学习,压缩包十六进制数据含义分析_第9张图片

07 00 00 00:未压缩尺寸(23)

zip 伪加密学习,压缩包十六进制数据含义分析_第10张图片

08 00:文件名长度

zip 伪加密学习,压缩包十六进制数据含义分析_第11张图片

00 00:扩展记录长度

zip 伪加密学习,压缩包十六进制数据含义分析_第12张图片
——
——

压缩源文件目录区

50 4B 01 02:目录中文件文件头标记

zip 伪加密学习,压缩包十六进制数据含义分析_第13张图片

3F 00:压缩使用的 pkware 版本

zip 伪加密学习,压缩包十六进制数据含义分析_第14张图片

0A 00:解压文件所需 pkware 版本

zip 伪加密学习,压缩包十六进制数据含义分析_第15张图片

00 00:全局方式位标记(有无加密,伪加密的关键) 目录文件文件头标记后 4bytes 。

zip 伪加密学习,压缩包十六进制数据含义分析_第16张图片

08 00:压缩方式

zip 伪加密学习,压缩包十六进制数据含义分析_第17张图片

72 98:最后修改文件时间

zip 伪加密学习,压缩包十六进制数据含义分析_第18张图片

c3 52:最后修改文件日期

zip 伪加密学习,压缩包十六进制数据含义分析_第19张图片

A7 DE 6A 5F:CRC-32校验

zip 伪加密学习,压缩包十六进制数据含义分析_第20张图片

07 00 00 00:压缩后尺寸(25)

zip 伪加密学习,压缩包十六进制数据含义分析_第21张图片

07 00 00 00:未压缩尺寸(23)

zip 伪加密学习,压缩包十六进制数据含义分析_第22张图片

08 00:文件名长度

zip 伪加密学习,压缩包十六进制数据含义分析_第23张图片

24 00:扩展字段长度

zip 伪加密学习,压缩包十六进制数据含义分析_第24张图片

00 00:文件注释长度

zip 伪加密学习,压缩包十六进制数据含义分析_第25张图片

00 00:磁盘开始号

zip 伪加密学习,压缩包十六进制数据含义分析_第26张图片

00 00:内部文件属性

zip 伪加密学习,压缩包十六进制数据含义分析_第27张图片

20 00 00 00:外部文件属性

zip 伪加密学习,压缩包十六进制数据含义分析_第28张图片

00 00 00 00:局部头部偏移量

zip 伪加密学习,压缩包十六进制数据含义分析_第29张图片
——
——

压缩源文件目录结束标志:

50 4B 05 06:目录结束标记

zip 伪加密学习,压缩包十六进制数据含义分析_第30张图片

00 00:当前磁盘编号

zip 伪加密学习,压缩包十六进制数据含义分析_第31张图片

00 00:目录区开始磁盘编号

zip 伪加密学习,压缩包十六进制数据含义分析_第32张图片

01 00:本磁盘上纪录总数

zip 伪加密学习,压缩包十六进制数据含义分析_第33张图片

01 00:目录区中纪录总数

zip 伪加密学习,压缩包十六进制数据含义分析_第34张图片

5A 00 00 00:目录区尺寸大小

zip 伪加密学习,压缩包十六进制数据含义分析_第35张图片

2D 00 00 00:目录区对第一张磁盘的偏移量

zip 伪加密学习,压缩包十六进制数据含义分析_第36张图片

00 00:ZIP 文件注释长度

zip 伪加密学习,压缩包十六进制数据含义分析_第37张图片
——
——

未加密

像上面这个文件,
压缩源文件数据区的全局方式位标记为 00 00 (50 4B 03 04两 后个 bytes );
且压缩源文件目录区的全局方式位标记为 00 00 (50 4B 03 04 后四个 bytes )。
所以这是一个普通的压缩文件,没有加密或伪加密。

——
——

伪加密

用一个 ctf 中 misc 方向的伪加密的文件举例。
打开压缩包里面还有一个文件夹。
zip 伪加密学习,压缩包十六进制数据含义分析_第38张图片

进入文件夹里面有一个 flag.txt 文件,但是无法打开。
zip 伪加密学习,压缩包十六进制数据含义分析_第39张图片

用 010 editor 打开压缩包,搜索关键字,可以看到压缩源文件数据区和压缩源文件目录区都有两个可供我们确定位置的文件头标记。这是一位压缩包中有 2 级目录,即前面说的打开压缩包里面还有一个文件夹。

依此类推,如果压缩包内存在多级目录,那查看压缩包十六进制数据就会有多个文件头标记。

然后可以看到,这里
压缩源文件数据区的全局方式位标记为 00 00
且压缩源文件目录区的全局方式位标记为 09 00
所以这是伪加密,导致前面文件无法打开。
zip 伪加密学习,压缩包十六进制数据含义分析_第40张图片
——
——

真加密

再看一个经过真正加密的压缩包。
zip 伪加密学习,压缩包十六进制数据含义分析_第41张图片
用 010 editor 打开,看到这里
压缩源文件数据区的全局方式位标记为 01 00
且压缩源文件目录区的全局方式位标记为 01 00
zip 伪加密学习,压缩包十六进制数据含义分析_第42张图片

总结,
压缩包看是否加密或伪加密,就看压缩源文件数据区的全局方式位和压缩源文件目录区的全局方式位标记两个位置。
这两个位置都是 00 00 四个数字,看前两个 0x ,如果 x 为偶数,则为未加密,x 为奇数,则为加密。

你可能感兴趣的:(知识点学习,伪加密)