zip格式伪加密

伪加密通过修改zip文件中的编码实现,通过修改zip文件中的通用标记位在解压时判断为已加密。
先看看zip文件的编码格式吧:
放上格式参考来源:http://blog.sina.com.cn/s/blog_4c3591bd0100zzm6.html
zip文件由三部分组成:1、 压缩的文件内容源数据 2、压缩的目录源数据 3、目录结束标识结构
放上要用到的两个部分:
这里写图片描述
这里的文件头标识在winhex里显示为504B0304,不清楚为什么和图中的值位置颠倒

这里写图片描述
目录源数据文件头标识在winhex里显示为504B0102

用winhex软件打开一个未加密的zip压缩包:
这里写图片描述
分析开头部分的数据:
文件头标识:504B0304
解压文件所需版本:0A00
通用位标记:0000 (这里是全局通用位标记,作用就是标记是否加密,如果压缩时设置了密码这里会标记为0900,伪加密改不改这里没什么影响)

然后用16进制搜索目录源数据的开头标记504B0102
这里写图片描述
分析标记的数据:
目录文件标识:504B0102
压缩采用版本:3F00
解压所需版本:0A00
通用位标记:0000 (把这里的通用位标记改为0900即可实现伪加密)

压缩包里用几个文件就会有几个目录文件标识,改动一个目录文件标识下的通用位标记只会令那一个文件加密,如下图:
这里写图片描述
改动多个通用位标记则可以实现对多个文件加密。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值