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

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

——

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

  1. 压缩源文件数据区
  2. 压缩源文件目录区
  3. 压缩源文件目录结束标志。

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

不同文件中每个部分的十六进制数据可能会有不同,但是根据每个部分的开头位置开始找,对应相同含义的数据会在相同的位置。
在这里插入图片描述

压缩源文件数据区

50 4B 03 04:头文件标记

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

08 00:压缩方式

在这里插入图片描述

72 98:最后修改文件时间

在这里插入图片描述

c3 52:最后修改文件日期

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

08 00:文件名长度

在这里插入图片描述

00 00:扩展记录长度

在这里插入图片描述
——
——

压缩源文件目录区

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

08 00:压缩方式

在这里插入图片描述

72 98:最后修改文件时间

在这里插入图片描述

c3 52:最后修改文件日期

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

08 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:目录区中纪录总数

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

00 00:ZIP 文件注释长度

在这里插入图片描述
——
——

未加密

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

——
——

伪加密

用一个 ctf 中 misc 方向的伪加密的文件举例。
打开压缩包里面还有一个文件夹。
在这里插入图片描述

进入文件夹里面有一个 flag.txt 文件,但是无法打开。
在这里插入图片描述

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

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

然后可以看到,这里
压缩源文件数据区的全局方式位标记为 00 00
且压缩源文件目录区的全局方式位标记为 09 00
所以这是伪加密,导致前面文件无法打开。
在这里插入图片描述
——
——

真加密

再看一个经过真正加密的压缩包。
在这里插入图片描述
用 010 editor 打开,看到这里
压缩源文件数据区的全局方式位标记为 01 00
且压缩源文件目录区的全局方式位标记为 01 00
在这里插入图片描述

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

  • 33
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goodric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值