zip伪加密
zip伪加密
wuliwaoka~今天要看的是什么奇怪小知识呢~~a,是zip!
zip相关内容
zip文件主要由三部分构成:压缩源文件数据区+核心目录+目录结束标识
压缩源文件数据区
- 0~3(四个字节)
50 4B 03 04:这是头文件标记0x04034b50 - 4~5(两个字节)
14 00:解压文件所需 pkware 版本 - 6~7
00 00:全局方式位标记(有无加密) - 8~9
08 00:压缩方式 - 10~11:最后修改文件时间
- 12~13:最后修改文件日期
- 14~17:CRC-32校验
- 18~21:压缩后尺寸
- 22~25:未压缩尺寸
- 26~27:文件名长度
- 28~29:扩展数据长度
- 30~30+n(n个字节):文件名
- 30+n~30+n+m(m个字节):扩展数据
核心目录
- 0~3
50 4B 01 02:目录中文件文件头标记0x02014b50 - 4~5
3F 00:压缩使用的 pkware 版本 - 6~7
14 00:解压文件所需 pkware 版本 - 8~9
00 00:全局方式位标记(有无加密,有无进行伪加密) - 10~11
08 00:压缩方式 - 12~13:最后修改文件时间
- 14~15:最后修改文件日期
- 16~19:CRC-32校验
- 20~23:压缩后尺寸
- 24~27:未压缩尺寸
- 28~29:文件名长度
- 30~31:扩展字段长度
- 32~33:文件注释长度
- 34~35:磁盘开始号(一般为0)
- 36~37:内部文件属性(一般为0)
- 38~41:外部文件属性
- 42~45:局部头部偏移量
目录结束标识
- 0~3
50 4B 05 06:目录结束标识标记0x06054b50 - 4~5:当前磁盘编号
- 6~7:目录区开始磁盘编号
- 8~9:本磁盘上纪录总数
- 10~11:目录区中纪录总数/即zip压缩包中的文件总数
- 12~15:目录区尺寸大小
- 16~19:目录区对第一张磁盘的偏移量
- 20~21:ZIP 文件注释内容的长度
- 22~22+n(n个字节):注释内容
伪加密
目录区域的全局方位标记第二位数字的奇偶决定是否加密,若将其改为奇数则判定为加密(此时数据区的全局方位标记第二位是偶数时,实际是伪加密),偶数则判定为未加密。未加密的文件将数据区和目录区都改动也能产生伪加密效果,所以根据目录区判断是否为伪加密不一定准确。
解法
使用16进制编辑器打开zip文件,将全局方位标记第二位改成0,此时zip就回到了未加密状态。
或者使用binwalk、ZipCenOp.jar等工具,最终也能打开伪加密zip文件。
注:mac系统不受伪加密影响,能直接打开伪加密zip文件sa~
(似乎部分Linux系统面对zip伪加密也能做到和mac一样的效果?)
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果





