ZIP是一种相当简单的分别压缩每个文件的存档格式。分别压缩文件允许不必读取另外的数据而检索独立的文件;理论上,这种格式允许对不同的文件使用不同的算法。不管用何种方法,对这种格式的一个告诫是对于包含很多小文件的时候,存档会明显的比压缩成一个独立的文件(在类Unix系统中一个经典的例子是普通的tar.gz存档是由一个使用gzip压缩的TAR存档组成)要大。
ZIP支持基于对称加密系统的一个简单的密码,现在已知有严重的缺陷,已知明文攻击,字典攻击和暴力攻击。ZIP也支持分卷压缩。在近来一段时间,ZIP加入了包括新的压缩和加密方法的新特征,不过这些新特征并没有被许多工具所支持并且没有得到广泛应用。
ZIP文件是一种压缩文件,可进行加密,也可不加密。而伪加密是在未加密的zip文件基础上修改了它的压缩源文件目录区里的全局方式位标记的比特值,使得压缩软件打开它的时候识别为加密文件,提示输入密码, 而在这个时候,不管你用什么软件对其进行密码破解,都无法打开它!这就是它存在的意义!
zip伪加密破解方法
一、使用ZipCenOp.jar(需要java环境),在cmd中使用 java -jar ZipCenOp.jar r xxx.zip 成功后压缩包可以直接打开
二、使用winRAR
进入工具,压缩修复文件,修复完后压缩包就可以打开了
上述两种方法很多情况都可以用,但是有时不行,第三种方法可以应对各种zip伪加密
三、修改文件头的加密标志位
这里我以墨者学院的密码学加解密实训(Zip伪加密)为例,用winhex打开压缩包havekey.zip
未加密
第一个荧光标记条中:(压缩源文件数据区初始位置)
504B0304(文件头标记,4bytes)
1400(解压文件所需pkware版本,2bytes)
0900(全局方式位标记,2bytes)软件识别加密
第二个荧光标记条中:(压缩源文件目录区初始位置)
504B0102(目录中文件文件头标记,4bytes)
1E03(压缩使用的pkware版本,2bytes)
1400(解压文件所需pkware版本,2bytes)
0000(全局方式位标记,2bytes)压缩软件识别未加密标志
--这里我已将源文件的0900改为0000,修改后解压KEY不再需要密码,得到:mozh去掉中文1号e53ea929d去掉中文2号17f32e5去掉中文3号c8d9ce去掉中文4号9944d5去掉中文5号
墨者学院的KEY提交格式是mozhe开头,故而提交mozhe53ea929d17f32e5c8d9ce9944d5