工具破解

前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具

苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法

密码字典

巧的是破解的三个都是4位数字密码,这让我想到了依靠字典破解

说干就干,伸手就来

#生成从0000到9999的密码表
f = open('passdict4.txt','w')
for id in range(10000):
password = str(id).zfill(4)+'\n'
f.write(password)
f.close()

果然猜想没错,破解速度的确快了不

习大大说,科技是第一生产力,创新是引领发展的第一动力

既然有更快速的方法,那为什么不研究个自动的方法出来呢

ZipFile库

Python有个叫ZipFile的库可以解压zip文件,从其相关文档中

ZipFile.extractall(path=None, members=None, pwd=None)

将zip文档内的指定文件解压到当前目录。

参数path指定了解析文件保存的文件夹

参数members指定要解压的文件名称或对应的ZipInfo对象

参数pwd为解压密码。

只需循环读取文件夹下的zip文件然后逐个解压即可

注意:python3有一个中文文件名乱码的,将ZipFile.py中的“cp437”改成“gbk”(两个地方需更改)即可永久解决

# zipfile打开zip文件
z = zipfile.ZipFile(f'{file_path}', 'r'
# path为解压路径,解包后位于该路径下
z.extractall(path=f"{root})
z.close()

在这个基础上再加上循环密码字典

注意:由于解压是密码错误会产生异常,这里可以利用try except进行处理

# 获取字典中的内容
passFile = open(r"D:\python\passdict4.txt")
# 循环获得单个密码
for line in passFile.readlines():
# 去换行
password = line.strip('\n')
try:
zip_file.extractall(path=f"{root}", pwd=password.encode("utf-8"))
print(password)
# 密码对了就不继续下去了
break
except:
# 什么都不做
pass
zip_file.close() # 关闭文件,必须有,释放内存

这么一通操作下来本以为大功告成,没想到事情没那么简单

大多是时候是可以破解的,但是总有些就破解失败了,束手无策的各个网站找方法

刚开始以为是extractall方法调用错了,但是报的错是密码错误,这就让我很迷

偶然见在一个看到一篇文章才得知

默认情况下,WinRAR在CTR模式下使用AES-256加密ZIP文件,而传统加密是通过CRC32加密,即ZIP 2.0传统加密算法,虽然AES-256比ZIP 2.0传统加密算法安全得多,但它可能与一些旧的解压软兼容,而Python标准库中的zipfile模块只支持CRC32加密的zip文件,所以不采用传统加密方式是无法通过zipfile库进行解压的

已经花了这么多心思,要是到这里就放弃,那真的是太淦了

既然加密方式不一样,那么解压软件是怎么做到直接解压的呢

这里产生了一个构想,要是能从代码里调用解压软件,那不就好办了吗

于是我赶紧使用绝技



成功搜索到,7z等多款解压软件有相关功能

调用第三方软件命令行

配置环境变量



命令行验证一下



奈斯,配置成功

passFile = open(r"D:\python\passdict4.txt")
for line in passFile.readlines():
password = line.strip('\n')
# t 测试
command='7z -p'+password+' t '+file_path
child=subprocess.call(command)
if(child==0):
print(password)
break

加密方式不一样的事情是解决了,不过人的贪欲真的是可怕

重复调用命令行这一闪一闪的又让我不爽了

pyzipper库(终极)

恰巧在查加密方式的时候看到有人提出

Python有个pyzipper库可以很好的兼容代替zipfile,可以读写AES加密的zip文件

都走到这了,没有撤退可言

安装pyzipper

pip install pyzipper

会出现中文名乱码情况,记得改下

f1 = open('D:\python\passdict4.txt','r')
with pyzipper.AESZipFile(file_path,'r') as f:
for i in f1:
i = i.rstrip('\n')
f.pwd = str.encode(i)
try:
f.extractall(path=f"{root}")
print(file_path+"\t密码是:"+i)
break
except Exception:
pass
f.close()
f1.close()

这个方法,堪称完美

点击下载相关代码,文件,工具

参考:

1.【补丁破解】ZIP压缩包密码破解工具PassperforZIP_v3.6.0.1

2.python-批量解压zip文件

3.python破解同事的压缩包密码

4.Python实现加密的ZIP文件解压(密码已知)

5.暴力破解(一)——python脚本暴力破解 加密的zip压缩文件

6.7Z命令行详解

7.4.python编写ZIP压缩文件爆破工具

8.Python中的zipfile模块使用详解

9.Python3中zipfile模块文件名乱码问题

最详细Python批量字典暴力破解zip密码的更多相关文章

  1. 【pyhon】黑客用字典暴力破解Zip文件密码原理性展示

    基本原理:用程序把字典文件里拟定好的密码一个个提取出来,去测试zip能否打开 字典文件pass.txt内容: 1224 2121 asdf abcd1234 dwsdsd dssds 程序代码: # ...

  2. 暴力破解ZIP文件密码

    Python 的标准库提供了 ZIP 文件的提取压缩模块 zipfile,现在让我们试着用这个模块,暴力破解出加密的 ZIP 文件!我们可以用 extractall()这个函数抽取文件,密码正确则返回 ...

  3. 分享一个撩妹、装13神技能,0基础用Python暴力破解WiFi密码

    WiFi密码Python暴力破解   Python密码破解部分截图 获取视频资料,转发此文+点击喜欢,然后获取资料请加Python交流群:580478401,就可以获取视频教程+源码 环境准备: py ...

  4. 忘记秘密利用python模拟登录暴力破解秘密

    忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...

  5. 记录ssh暴力破解的密码字典

    之前我已经在wooyun和91ri上发表了这篇文章,今天转到51cto上... 默认的ssh日志是不带密码记录功能的,现在想把登录密码记录下来,这样就可以搜集黑客的ssh爆破字典了,从而可以反扫回去. ...

  6. 使用Medusa美杜莎暴力破解SSH密码

    使用Medusa美杜莎暴力破解SSH密码 1.Medusa简介 Medusa(美杜莎)是一个速度快,支持大规模并行,模块化的爆力破解工具.可以同时对多个主机,用户或密码执行强力测试.Medusa和hy ...

  7. 使用pdfcrack & crunch暴力破解PDF密码

    crunch是密码字典生成器,可以根据指定的字符来生成组合密码字典. pdfcrack是Linux下一个PDF暴力破解密工具,可以使用crunch生成的密码字典来暴力破解PDF文件的密码. 注:没有强 ...

  8. Linux用root强制踢掉已登录用户;用fail2ban阻止ssh暴力破解root密码

    Linux用root强制踢掉已登录用户   首先使用w命令查看所有在线用户: [root@VM_152_184_centos /]# w 20:50:14 up 9 days, 5:58, 3 use ...

  9. Odoo14 防暴力破解登录密码

    1 # Odoo14 防暴力破解登录密码 2 # 主要工具:redis 3 # 实现思路:限制每个用户24小时内登录失败次数.连续超过5次失败后,需要等待一定时间后才能再次尝试登录 4 # 配置:在你 ...

随机推荐

  1. mysql语句的书写顺序和执行顺序

    mysql语句的书写顺序和执行顺序有很大差异. 书写顺序,mysql的一般书写顺写为: select <要返回的数据列> from <表名> <join, left jo ...

  2. linux 图解笔记

  3. 解决自动安装Freebsd系统盘符无法确定问题

    最近因为需要用到Freebsd,所以研究了打包的一些方法,这个没什么太大问题,通过网上的一些资料可以解决,但是由于确实不太熟悉这套系统,还是碰上了一些比较麻烦的地方,目前也没看到有人写如何处理,那就自 ...

  4. ClickHouse数据库数据定义手记之数据类型

    前提 前边一篇文章详细分析了如何在Windows10系统下搭建ClickHouse的开发环境,接着需要详细学习一下此数据库的数据定义,包括数据类型.DDL和DML.ClickHouse作为一款完备的D ...

  5. bWAPP----HTML Injection - Reflected (POST)

    bWAPP--low--HTML Injection - Reflected (POST) 只不过是把传递方式换成post, 防护的三个级别和内容与GET相同 1 function htmli($da ...

  6. vector删除特定元素

    删除vector中小于20的元素,注意要使迭代器失效,不能简单的删除. #include <iostream>#include <vector>using namespace ...

  7. MindManager导出Word文档功能介绍

    Mindmanager思维导图软件作为一款能与Microsoft office软件无缝集成的思维导图软件,支持Word文档的快速导入与导出,并支持Word文档的目录生成.模板套用等,极大地方便了用户完 ...

  8. 在线思维导图Ayoa共享功能使用教程

    Ayoa是一个制作思维导图的软件,除了导图制作,小编在使用过程中还发现了一些令人惊喜的功能,这些功能使得Ayoa有了更大的亮点以吸引用户. 下面就为大家简单介绍几个小编认为Ayoa中较为实用的共享功能 ...

  9. 左右声道音频怎么制作,用Vegas就对啦

    一款优秀的视频剪辑软件,不仅有高水平的视频制作功能,它的音频编辑功能也是必不可少的.Vegas就是这么一款软件,同时具备视频制作特效制作的同时,还能帮助制作轨道音频效果. 下面,就让小编带大家去学习, ...

  10. JUC并发工具包之CountDownLatch

    1.介绍 本文将介绍CountDownLatch并给出实践中的几个例子,通过使用CountDownLatch我们可以让一个线程阻塞直到其他一个或多个线程执行完成. A synchronization ...