项目文件结构
在当前目录有三个文件:
- 3-zipCrack.py :zip 破解程序
- dictionary.txt :密码字典
- evil.zip :zip 压缩包程序
代码实现过程
ZIP,是一个文件的压缩的算法,ZIP通常使用后缀名“.zip”,它的MIME格式为 application/zip 。
目前,ZIP格式属于几种主流的压缩格式之一,其竞争者包括RAR格式以及开放源码的7-Zip格式。从性能上比较,RAR格式较ZIP格式压缩率较高,但是它的压缩时间远远高于Zip。
其破解原理就是遍历密码字典的密码,逐个尝试解码,如果密码复杂字典过大会导致破解效率下降,下面用多线程破解可以改善之。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import zipfile
import optparse
from threading import Thread
def extractFile(zFile, password):
# 破解zip 密码程序
zFile.extractall(pwd=password)
print '[+] Found password ' + password + '
'
def main():
parser = optparse.OptionParser("usage %prog "+
"-f <zipfile> -d <dictionary>")
# 解析命令行
# ...
zFile = zipfile.ZipFile(zname)
passFile = open(dname)
for line in passFile.readlines():
# 实现多线程破解
t = Thread(target=extractFile, args=(zFile, password))
t.start()
if __name__ == '__main__':
main()
演示效果
在当前目录有三个文件:
- 3-zipCrack.py :zip 破解程序
- dictionary.txt :密码字典
- evil.zip :zip 压缩包程序
第一次输入python 3-zipCrack.py
提示使用用法:
usage %prog -f <zipfile> -d <dictionary>
然后按使用方法正确输入命令:
python 3-zipCrack.py -f evil.zip -d dictionary.txt
这样成功破解出 evil.zip 压缩包,并显示 zip 解码密码是secret
。具体如下图的操作:
破解 zip 压缩包程序
注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权