简介
什么是压缩包伪密码?
其实就是给一个没有设置密码的压缩包加上密码,不过这个密码不是手打的,而是通过进制修改的,其实压缩包并没有加密,只是伪造了加密的假象,打开后会提示你输入密码才能解压文件,不管怎么爆破也是没用的,因为本来就没有密码。
实现步骤

1.这里我创建了一个3.txt文本文档,内容写了 hey actdream!。

2.这里要选择zip压缩,没有加密码直接压缩到桌面上。

3.可以看到压缩包里的文件是没有密码的,现在我用Winhex打开工具可以网上下载,010Editor都是可以的。

4.这两块区域都有 14 00 它是解压文件需要的pkware版本,后面接的 00 00 就是全局方式位标记,改成09 00就会提示密码了。

5.只需要修改最后一组,然后保存再打开发现需要密码了,这种情况只能该会 00 00 就不需要密码了。
解密
import os
def modify_file(path):
if not os.path.exists(path):
print("路径不存在")
return
with open(path, 'rb+') as file:
data = file.read()
modified_data = data.replace(b'\x14\x00\x09', b'\x14\x00\x00')
if modified_data != data:
file.seek(0)
file.write(modified_data)
file.truncate()
print("文件修改成功")
else:
print("未找到需要修改的字节")
content = input("请拖入路径:")
if content.strip() != "":
modify_file(content)
结构

区分
- 无加密
压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为00 00 - 伪加密
压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为09 00 - 真加密
压缩源文件数据区的全局加密应当为09 00
且压缩源文件目录区的全局方式位标记应当为09 00
视频效果
总结
第一个全局方式位标记: 结果会出现不会出现zip伪加密。
第二个全局方式位标记 ( 修改为09 00 只要是奇数就行 ) : 只要末位是奇数,就代表加密,反之末位是偶数代表未加密。
修改zip文件头(50 4B 03 04)修改成其他数据: 结果出现压缩包损坏,导致文件无法解压。
评论 (0)