zip 伪加密 Python处理脚本
一个zip文件没有设置密码,但是你可以让它看起来有密码,
应该就是让判断是否加密的那一位更改一下
需要修改的地方跟压缩文件的个数有关
压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50) 14 00:解压文件所需 pkware 版本 00 00:全局方式位标记(有无加密) 08 00:压缩方式 这个地方的标志位叫 frFlags
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
参考网址: http://blog.csdn.net/ETF6996/article/details/51946250
需要修改的地方跟压缩文件的个数有关
压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50) 14 00:解压文件所需 pkware 版本 00 00:全局方式位标记(有无加密) 08 00:压缩方式 这个地方的标志位叫 frFlags
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
08 00:压缩方式
这个地方的标志位叫deFlags
如果一个zip文件被伪加密处理,可以用用winhex等16进制编辑器来修改(010Editor可能比较方便),也可以通过脚本处理会没有伪加密的状态
python处理脚本如下:
#! python3
# coding:utf8
# author: neo
"""
zip伪加密去除脚本
"""
import sys
def removefade(para1):
# 读取原zip文件
zipfile = open(para1,"rb")
zipfile_content = zipfile.read().encode("hex")
zipfile.close()
zf_len = len(zipfile_content)
# 查找加密标志位并处理
for i in xrange(zf_len):
comp_con = zipfile_content[i:i+8]
if comp_con == "504b0102":
zipfile_content = zipfile_content[:i+17] + "0" + zipfile_content[i+18:]
if comp_con == "504b0304":
zipfile_content = zipfile_content[:i+13] + "0" + zipfile_content[i+14:]
# 将处理后内容写入新文件
newzip = open(para1[:-4] + "repair.zip","wb")
newzip.write(zipfile_content.decode("hex"))
newzip.close()
print("Done")
if __name__ == "__main__":
if(len(sys.argv) == 1):
print("
usage example:")
print(" python dzipfade.py a.zip
")
else:
para = sys.argv
removefade(para[1])
参考网址: http://blog.csdn.net/ETF6996/article/details/51946250
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: 南邮ctf平台部分题解
