1. 首页
  2. 综合百科
  3. 暴力破解zip压缩包(零基础也可以学会破解zip)

暴力破解zip压缩包(零基础也可以学会破解zip)

简介:关于暴力破解zip压缩包(零基础也可以学会破解zip)的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

对于那些没有做过Python编程的人来说,它可能有点冗长。

当然,对于那些还没有接触过Python的小编在这里准备了一份Python学习资料,希望对大家有所帮助,而一份Python黑客教程大家可以私企小编“01”去获取!

废话少说,我们开始谈正事吧。

2.1准备基础材料

在/home/ziptest/目录中,我创建了两个文件test.zip,这是一个密码为456789的zip包。

txt是一个简单配置几个密码的字典文件。

让我们打开开发工具并开始编写测试代码。

2.2 ZIPFILE

在python中操作zip文件的最简单方法是使用zipfile模块,该模块可用于确定文件是否被压缩,创建和解压缩文件,以及获取有关zipfile的元数据信息。您可以使用python的help方法来查看如何使用该模块。

让我们首先关注ZipFile类。

这个类用于打开、读取、修改和解压缩zip文件。我们想操作一个zip文件,第一步是初始化ZipFile实例。接下来打开准备好的text.zip文件。

import zipfile

zFile=zipfile.ZipFile('/HOME/TEST.ZIP');

我们只传递了一个路径参数,正如您从帮助中看到的,接下来的三个参数都有默认值,因此我们将在这里使用默认值。

让我们看一下ZipFile类的extractall方法。

extractall方法提取压缩包的所有内容。Path为解压路径,members为要解压的文件,PWD为密码。

现在我们可以测试文件解压缩。

import zipfile

zFile=zipfile.ZipFile('/HOME/ZIPTEST/TEST.ZIP');

zFile.extractall('/HOME/',pwd='456789');

运行脚本。

如果密码正确,文件将被正常解压缩。如果密码不正确怎么办?我们在密码中输入了错误的密码。

import zipfile

zFile=zipfile.ZipFile('/HOME/ZIPTEST/TEST.ZIP');

zFile.extractall(path='/HOME/ZIPTEST',pwd='4567890');

程序将抛出“错误密码”异常。

我们可以通过捕捉异常来测试多个密码。

2.3读取字典文件

要在Python中打开文件,请使用open方法,这是一个内置方法。查看Open帮助以获取参数说明。

open方法返回一个文件对象,通过该对象我们可以读取文件的内容。让我们在代码中进行测试。

import zipfile

passFile=open('/HOME/ZIPTEST/DICT.TXT');

for line in passFile.readlines():

password=line.strip('\N');

print(password);

运行结果如下:

让我们使用读取密码强制执行zip文件。

import zipfile

zFile=zipfile.ZipFile('/HOME/ZIPTEST/TEST.ZIP');

passFile=open('/HOME/ZIPTEST/DICT.TXT');

for line in passFile.readlines():

password=line.strip('\N');

try:

zFile.extractall(path='/HOME/ZIPTEST',pwd=password);

print('PASSWORD IS:'+password);

exit(0);

except:

pass;

在上面的代码中,我们使用try - except来捕获异常,如果密码不正确,程序将跳过执行。当密码正确时打印密码并终止程序。运行结果如下:

到目前为止,我们的脚本已经能够对zip文件进行暴力破解,您可以看到它只有大约十几行代码。为了改进应用程序的可用性,让我们重构脚本以利用功能分区。

2.4重构,逐个函数划分

首先定义一个extractFile函数,该函数接受三个参数:一个zipfile对象、要提取的目标路径、密码,如果解密成功,则返回密码。

def extractFile(toPath,zFile,password):

try:

zFile.extractall(path=toPath,pwd=password);

return password;

except Exception,e:

return;

现在让我们声明另一个主方法。

def main():

zFile=zipfile.ZipFile('/HOME/ZIPTEST/TEST.ZIP');

passFile=open('/HOME/ZIP/TEST/DICT.TXT');

for line in passFile.readlines():

password=line.strip('\N');

guess=extractFile('/HOME/',zFile,password);

if guess:

print('SCUCESS'+password);

exit(0);

在main方法中,我们首先初始化zipfile对象,然后打开字典文件,遍历密码,并传递extractFile方法调用。

在分离这两个方法之后,我们需要在程序的入口点调用main方法。完整代码如下:

import zipfile

def extractFile(toPath,zFile,password):

try:

zFile.extractall(path=toPath,pwd=password);

print('SCUCESS'+password);

return password;

except Exception,e:

return;

def main():

zFile=zipfile.ZipFile('/HOME/ZIPTEST/TEST.ZIP');

passFile=open('/HOME/ZIPTEST/DICT.TXT');

for line in passFile.readlines():

password=line.strip('\N');

guess=extractFile('/HOME/',zFile,password);

if guess:

print('SCUCESS'+password);

exit(0);

if __name__=='__MAIN__':

main();

这使得代码更加清晰,但是当我们更改zip和dictionary文件时,我们仍然需要更改代码,这很不方便。正常的程序应该能够传递参数。好的,让我们介绍一下optparse库。

2.5 OPTPARSE

Python有两个内置模块用于处理命令行参数:

一个是getopt,也在《Deep in python》这本书中提到,它只是处理命令行参数;

另一个是optparse,它功能强大且易于使用,可以轻松生成标准的、兼容Unix/posix的命令行描述。

首先,介绍optparse模块,然后强制两个参数,zip文件名和字典文件名。先看一下代码:

def main():

parser=optparse.OptionParser('usage%prog '+\

'-f zipfile -d dictFile');

parser.add_option('-f',dest='zname',type='string',help='specify zip file');

parser.add_option('-d',dest='dname',type='string',help='specify dict file');

(options,args)=parser.parse_args();

if(options.zname==None)|(options.dname==None):

print parse.usage;

exixt(0);

else:

zname=options.zname;

dname=options.dname;

zFile=zipfile.ZipFile(zname);

passFile=open(dname);

for line in passFile.readlines():

password=line.strip('\n');

guess=extractFile('/home/',zFile,password);

if guess:

print('scucess'+password);

exit(0);

首先初始化OptionParser对象,然后添加两个选项——“-f”和“-d”。然后,当程序运行时,通过parse_args方法获得输入参数。如果该参数为空,则打印使用方法并退出程序。

让我们使用终端测试该程序。

无参数:

输入参数:

2.6总结

程序本身没有什么困难,但是通过本入门教程,您可以体验Python编程的基础知识,了解如何查看帮助文档、如何介绍模块、初始化对象、操作zip文件、打开本地文件以及设置命令行参数。

本文主要介绍了关于暴力破解zip压缩包(零基础也可以学会破解zip)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/1464063.html