您的位置:首页 > 编程语言 > Python开发

使用Python3写一款轻量级的破解zip压缩文件的工具

2018-01-21 10:27 906 查看
有时候网上下载了一些压缩包软件,解压需要密码,非常苦恼,网上也没有一种轻量级的破解工具,甚至有些垃圾工具还要收费,这种开发者的行为实在令人发指,破解原理也基本上都是基于对密码的猜解。这种暴力破解的方式实现起来也并不是很难,但是成功率还是要看你的字典强大性,代码截图如下,删除空行大概25行代码就能完成。

#coding=utf8

import zipfile
import optparse
from threading import Thread

def extractFile(zFile,password):
try:
zFile.extractall(pwd = password.encode(encoding="utf-8"))
print("[+] Found password " + password + "\n")
except Exception as e:
print(str(e))#如果不需要输出不成功的结果,直接改成pass

def main():
parse = optparse.OptionParser("useage%prog " + "-f <zipfile> -d <dictionary>")
parse.add_option("-f",dest="zname",type="string",help="specify zip file")
parse.add_option("-d",dest="dname",type="string",help="specify dictionary file")
(options,args) = parse.parse_args()
if (options.zname == None) | (options.dname == None):
print(parse.usage)
else:
zname = options.zname
dname = options.dname
zFile = zipfile.ZipFile(zname)
passFile = open(dname)
for line in passFile.readlines():
password = line.strip("\n")
t = Thread(target = extractFile,args=(zFile,password))
t.start()

if __name__ == "__main__":
main()

在测试的目录下执行命令 : python3 .\zipfiel.py -f .\test.zip -d .\pass.txt,需要注意的是Python3中需要将传入的密码数据类型由字符串转化为字节.

将test.zip解压出来,并且提示密码123456,前提是字典中有这个密码。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: