Python实现Zip文件的暴力破解

news/2025/1/9 4:20:05/文章来源:https://www.cnblogs.com/Arisf/p/18647254

Python实现Zip文件的暴力破解

实验内容

我们在网上好不容易下载到一个想要的 zip 资源却发现这个 zip 文件是加密的,或者忘掉自己压缩后的密码(一想到就头疼)。这时候我们就会想办法,将里面的内容提取出来。我目前已知的破解 zip 的方式只有 “Known plaintext attack(已知明文攻击)” 和 “暴力破解”。由于 “Known plaintext attack” 也有比较大的局限性,而且本次实验的定位是入门级的。所以本次实验将带领大家用 Python 的 zipfile 模块实现 Zip 文件的暴力破解。

实验知识点

  • zipfile 的使用方法
  • argparse 的使用方法

实验环境

  • Ubuntu Linux
  • Python 3.x版本

实验步骤

  • 创建加密压缩包
cd Code
mkdir deZip
cd deZip
touch 1.txt
zip -r 1.zip 1.txt -P 1314
  • 编写解压程序
import zipfile
try:with zipfile.ZipFile('1.zip') as zFile:     #创建 ZipFile 对象#解压文件zFile.extractall(path='./', pwd=b'1314')print('Extract the Zip file successfully!')
except:print('Extract the Zip file failed!')

12-1

  • 建立一个密码字典
vim pwd.txt
123456
qwe123456
321321
123654789
456852
0000000000
WOAIWOJIA
741852963
5845201314
aini1314
0123456789
a321654
123456123
584520
778899
520520520
7777777
q123456789
123789
zzzzzz
1314
  • 破解程序(依照密码本)
import zipfile
import argparse
import os
from os.path import *def tryZipPwd(zipFile, password, savePath):try:zipFile.extractall(path=savePath, pwd=password.encode('utf-8'))print('[+] Zip File decompression success,password: %s' % (password))return Trueexcept:print('[-] Zip File decompression failed,password: %s' % (password))return Falsedef main():# 这里用描述创建了ArgumentParser对象parser = argparse.ArgumentParser(description='Brute Crack Zip')# 添加-H命令dest可以理解为咱们解析时获取-H参数后面值的变量名,help是这个命令的帮助信息parser.add_argument('-f', dest='zFile', type=str, help='The zip file path.')parser.add_argument('-w', dest='pwdFile', type =str, help='Password dictionary file.')zFilePath = NonepwdFilePath = Nonetry:options = parser.parse_args()zFilePath = options.zFilepwdFilePath = options.pwdFileexcept:print(parser.parse_args(['-h']))exit(0)if zFilePath == None or pwdFilePath == None:print(parser.parse_args(['-h']))exit(0)with zipfile.ZipFile(zFilePath) as zFile:with open(pwdFilePath) as f:for pwd in f.readlines():p,f = split(zFilePath)dirName = f.split('.')[0]dirPath = join(p, dirName)try:os.mkdir(dirPath)except:passok = tryZipPwd(zFile, pwd.strip('\n'), dirPath)if ok:break
if __name__ == '__main__':main()
  • 运行破解程序
python3 decodeZip.py -f 1.zip -w pwd.txt

12-2
解压成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/862836.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DVWA靶场File Upload(文件上传) 漏洞所有级别通关教程及源码审计

文件上传 文件上传漏洞是由于对上传文件的内、类型没有做严格的过滤、检查,使得攻击者可以通过上传木马文件获取服务器的webshell文件 low 上传一个php文件,上传成功,并且可以在WWW\DVWA\hackable\uploads目录下找到该文件此难度没有做任何过滤,所有文件都可以上传 源码审计…

论文阅读:Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

Transformer可以接收一整段序列,然后使用self-attention机制来学习它们之间的依赖关系,但其在语言建模时受到固定长度上下文的限制(固定长度的输入、绝对位置编码的限制、注意力机制的计算复杂度)。 Transformer-XL以此为基础,引入一个片段级递归机制和一种新的位置编码方…

WPS 关闭个性化推荐

WPS>打开文件位置>打开第一个文件夹>继续打开文件夹>找到ksomisc.exe工具并双击打开>高级>功能定制:关闭个性化推荐I have a dream : Sandy beach B-J-N.

搭建一个简单的UVM验证平台

转载自 https://zhuanlan.zhihu.com/p/713891980 一. UVM 方法学简介 UVM(Universal Verification Methodology),又称作通用验证方法学。它起源于OVM(Open Verification Methdology),是由Cadence,Mentor和Synopsys联合推出的主流验证方法学;UVM方法学可以帮助我们搭建…

react学习之antd

antd为 Web 应用提供了丰富的基础 UI 组件,我们还将持续探索企业级应用的最佳 UI 实践。它最初是基于 React 的组件库,但随着技术的发展,现在也提供了基于 Vue.js 的版本——Antd Vue。无论你是 React 还是 Vue 的开发者,都可以利用 Antd 来丰富你的 Web 应用界面。antd 为…

windos server添加新用户

以Windows Server 2022举例子(该机器本身是一台轻量应用服务器)。 首先添加新用户:以管理员身份登录,选择“更改账户设置”: 选择 “其他用户” --> “将其他人添加到这台电脑”: 选择 “用户”: 单击鼠标右键,选择 “新用户”: 填写要创建的新用户信息: 选…

LLM2Vec: 解锁大语言模型的隐藏能力

LLM2Vec:重新定义大语言模型在自然语言处理中的应用一种名为 ** LLM2Vec ** 的新方法正在改变我们对大语言模型(LLMs)在自然语言处理(NLP)中的使用方式。 研究人员提出了一种创新方法,将通常仅用于生成文本的大型语言模型转化为更强大的文本理解和组织工具。这项技术有可…

将未来帧中的点 pts​ 对齐到当前帧

已知当前的rt矩阵,和未来下一帧的rt矩阵和未来下一帧的5个点pts,求把pts对齐到当前帧。import numpy as npdef align_points(rt_current, rt_future, pts_future):# 计算从未来帧到当前帧的相对变换矩阵rt_relative = np.linalg.inv(rt_current) @ rt_future# 将点转换为齐次…

基于甘特图的任务调度与跟踪工具

在当今复杂的项目管理领域,工具的种类繁多且功能各异。常见的项目管理工具包括禅道、Trello、Jira、Microsoft Project等。这些工具在不同层面上助力项目管理,从任务分配到进度跟踪,从团队协作到资源管理。甘特图作为一种直观且有效的任务调度与跟踪工具,在众多项目管理工具…

2024年项目管理软件的创新突破:数据分析与自动化的结合

项目管理软件在现代企业中的作用愈加重要,尤其是在快速变化和竞争激烈的环境中。随着技术不断发展,项目管理软件也在不断创新,以适应新的工作方式和需求。2024年,项目管理软件将不仅仅是一个任务管理工具,而是一个集成化平台,支持团队协作、数据分析、资源优化等多项功能…

分布匹配蒸馏:扩散模型的单步生成优化方法研究

扩散模型在生成高质量图像领域具有显著优势,但其迭代去噪过程导致计算开销较大。分布匹配蒸馏(Distribution Matching Distillation,DMD)通过将多步扩散过程精简为单步生成器来解决这一问题。该方法结合分布匹配损失函数和对抗生成网络损失,实现从噪声图像到真实图像的高效…

服务器负载过高,硬件升级后仍无法访问网站

当您的服务器因负载过高提示需要升级,且在完成硬件升级后仍然无法访问网站时,可能是由于多个方面的问题导致的。为了确保网站能够正常运行,请按照以下步骤进行排查和优化: 1. 检查Web服务状态 首先,确保Web服务器(如Apache、Nginx)正在运行。通过SSH登录到服务器,使用命…