前言:
一次做misc题,经过一系列操作最后得到了一个加密压缩包,且我已经看到了flag文件就在压缩包内,但是题目却没有给其它任何关于密码的提示,于是我猜测是伪加密。可是经过一系列操作后还是没有解开,我开始尝试暴力破解,没想到还真的成功了。由此我想系统的总结一下压缩包的伪加密以免下次再浪费时间在伪加密上面。
一、zip文件的初识
1、zip压缩包的的组成。
它由3个部分组成:压缩源文件数据区 + 压缩源文件目录区 + 压缩源文件目录结束标志
2、借助网上的图片可以清晰的了解zip的详细构造如:
二、判定是否存在伪加密
不存在加密:
压缩源文件数据区中的全局方式位标记为00 00 且 压缩源文件目录区的全局方式位标记为00 00(全局方式标记位就是14 00 后面的那个字节。
存在伪加密:
压缩源文件数据区中的全局方式位标记为00 00 且 压缩源文件目录区的全局方式位标记为09 00 或01 00。或者压缩源文件目录区的全局方式标记为00 00。
存在真实加密:
压缩源文件数据区中的全局方式位标记为09 00或01 00 且 压缩源文件目录区的全局方式位标记为09 00 或 01 00 且压缩方式也不为00 00
三、去除伪加密
- 使用特定的工具来进行清楚密码如:ZipCenOp.jar
- 手动更改文件头,将压缩源文件目录区的全局方式位标记为09 00 或 01 00改为00 00保存即可。(手动更靠谱)