判断zip文件伪加密
关于判断zip文件是否进行了伪加密的方法,以及如何解除伪加密。
step 1 winhex查看zip压缩包
将可能进行了伪加密的压缩包用winhex打开,首先了解一下基本的zip包的构造:
(1)压缩源文件数据区标识:即当头文件是504B0304时,则表示文件类型为zip压缩包。
(2)第一个全局方式位标记:即下图中在数据区标识后两位的0900,这个是判断文件有无加密。
(3)压缩源文件目录区标识:即下图中出现的504B0102。
(4)第二个全局方式位标记:即下图中在目录区标识后四位的0900,这个是判断文件是否进行了伪加密。压缩源文件目录结束标识:即为504B0506时,标识目录区结束。

step 2 判断是否为伪加密
- 无加密
o 压缩源文件数据区的全局加密应当为00 00
o 且压缩源文件目录区的全局方式位标记应当为00 00
- 伪加密
o 压缩源文件数据区的全局加密应当为00 00
o 且压缩源文件目录区的全局方式位标记应当为09 00
- 真加密
o 压缩源文件数据区的全局加密应当为09 00
o 压缩源文件目录区的全局方式位标记应当为09 00
step 3 修改数据
如果判断出文件为伪加密,按照step 2的描述,只需要将压缩源文件目录区的全局方式位标记由09 00改成00 00,并保存修改即可。这样伪加密的文件就会自动解密。
也可以使用工具,将进行了伪加密的文件使用工具zipcenop可直接解除加密。
我一般不怎么看十六进制数据,因为之前遇到过一个题目,它的两个标识位都为09 09,按理来说应该是真加密,但好巧不巧,它就是伪加密。所以题目没给密码提示时,我会直接将加密的压缩先用zipcenop检测一下,如果是则自动解除加密了,如果不是就的确是真加密了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 echozt!