ZIP伪加密
ZIP伪加密的特征
zip文件结构可以分为三个部分:
压缩源文件数据区压缩文件目录区压缩源文件目录结束标志
压缩源文件数据区中的全局方式位标记是判断压缩包有无伪加密的重要标志,即压缩源文件数据区的第7、第8两个字节09 00。ZIP的压缩源文件数据区全局方式位标记在010 Editor显示的文件结构中即为ushort frFlags。 压缩文件目录区的全局方式位标记是进行伪加密的关键,即压缩文件目录区的第9、第10两个字节。ZIP的压缩文件目录区全局方式位标记在010 Editor显示的文件结构中即为ushort deFlags。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0331971945ea4da4bd8d4ef1d107d218.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pyrIOWInQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
无加密的ZIP: 压缩源文件数据区的全局方式位标记应当为00 00 且压缩源文件目录区的全局方式位标记应当为00 00真加密的ZIP: 压缩源文件数据区的全局方式位标记应当为09 00 且压缩源文件目录区的全局方式位标记应当为09 00伪加密的ZIP: 压缩源文件数据区的全局方式位标记应当为00 00 且压缩文件目录区的全局方式位标记应当为09 00
如何破解ZIP伪加密
第一种方法:直接修改压缩文件目录区的全局方式位标记为偶数,即可解压第二种方法:有些压缩软件可以无视伪加密直接解压,例如:WinRAR、7zip、360压缩第三种办法:有个Java写的小工具ZipCenOp.jar,需要java环境,在cmd中运行java -jar ZipCenOp.jar r xxx.zip即可解压
RAR伪加密
RAR的伪加密与ZIP的伪加密原理相同,造成伪加密的关键都是在一个指定的位标记字段上。
PS:一般RAR伪加密的压缩包用WinRAR打开时都会显示文件头已损坏
在RAR的第24个字节,也就是010 Editor显示的文件结构中的ubyte PASSWORD_ENCRYPTED字段,修改其字段为1即可实现RAR伪加密。 或者修改第11个字节,也就是010 Editor显示的文件结构中的ubyte BLOCK_HEADERS_ENCRYPTED字段的值。修改为1即可造成RAR伪加密。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/28826114bf7d41b3aadc2c3902eecda3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pyrIOWInQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
|